Thrift

Slack Docker Pulls GitHub edit source

Mac OS X

在安装Apache Thift之前,你首先需要有命令行支持。为此,你需要:

从Mac App Store中安装Xcode。

启动Xcode,打开Preferences,选择Downloads,安装“Command Line Tools for Xcode”组件。

Homebrew

这一部分介绍如何通过Homebrew安装Apache Thrift。

首先,安装Homebrew

下面是Homebrew的安装命令:

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
brew doctor

使用Homebrew安装autoconf、automake、libtool和pkg-config:

brew install autoconf automake libtool pkg-config libevent

使用Homebrew安装Boost

brew install boost

安装Thrift

brew install thrift

MacPorts

这一部分介绍如何用MacPorts安装Apache Thrift。

如果你使用MacPorts,下面的介绍会有所帮助。

sourceforge安装MacPorts。

自动更新Port:

sudo port selfupdate

使用Port来安装flex、bison、autoconf、automake、libtool和pkgconfig:

sudo port install flex, bison, autoconf automake libtool pkgconfig libevent

使用Port安装Boost

sudo port install boost

使用Port安装Thrift:

sudo port install boost

最新的命令也许不会生效,请参考该问题。这种情况下,我们建议从源码中构建Thrift 0.9.2(假设你使用的是MacPort的默认目录/opt/local):

./configure --prefix=/opt/local/ --with-boost=/opt/local/lib --with-libevent=/opt/local/lib CXXFLAGS="-I/usr/include/4.2.1 -L/opt/local/lib"
make
make install

你可以更改CXXFLAGS。这里我们是通过port,在Mavericks上为std::tr1添加/usr/include/4.2.1,并将/opt/local/lib添加到库中。如果没有-I,安装可能因为tr1/functional not found失败。没有-L则可能会在连接过程中失败。

Linux

参考

Debian/Ubuntu

下面的命令会安装所有需要的工具包和软件库,以用于在Debian/Ubuntu系统上构建和安装Apache Thrift编译器。

sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev ant python-dev

sudo yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel ant python-dev

然后按照你的需求安装Java JDK。输入javac来查看可用的包,选择一个你倾向使用的,然后使用包管理器来安装。

Debian Lenny用户需要一些来自backports的包:

sudo apt-get -t lenny-backports install automake libboost-test-dev

构建Thrift:

./configure --with-boost=/usr/local
make
make install

CentOS

下面的步骤用于在CentOS 6.4系统上安装。

安装依赖:

sudo yum install automake libtool flex bison pkgconfig gcc-c++ make

将autoconf更新到2.69(yum通常会下载2.63,该版本不适用于Apache Thrift):

sudo yum install 'ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/monkeyiq:/centos6updates/CentOS_CentOS-6/noarch/autoconf-2.69-12.2.noarch.rpm'

下载并安装Apache Thrift源码:

wget 'https://github.com/apache/thrift/archive/0.9.2.tar.gz'
tar zxvf 0.9.2
cd thrift-0.9.2/
./bootstrap.sh
./configure --enable-libs=no
make
sudo make install

利用Thrift生成Java文件

Alluxio利用thrift文件定义了其RPC服务,该文件位于:

./common/src/thrift/alluxio.thrift

并利用thrift文件生成相应的Java文件,该Java文件位于:

./common/src/main/java/alluxio/thrift/

如果thrift文件被修改了,要重新生成Java文件,你可以运行:

./bin/alluxio thriftGen