摘自:http://blog.chinaunix.net/uid-25808509-id-3269136.html
(1)安装Thrift
不是一件很轻松的事。如果你的系统比较干净,可能很顺利地就搞定了,如果有依赖库缺失问题或者库冲突问题,那么就只能根据具体情况,一个个问题去fix了,谁知道会有多少麻烦。
我运气比较好,在一个干净的系统上,很快就完成了。
Thrift 至少会依赖于两个系统中一般不会带的库:libevent,boost。 http://thrift.apache.org/download/
libevent 到这里下载:http://monkey.org/~provos/libevent/ 我使用的版本是:2.0.12-stable
boost 到这里下载:http://www.boost.org/ 我使用的版本是:1.47.0
安装libevent:
1 2 3 | ./configure --prefix=/usr/local/libevent make make install
|
安装boost(boost不像一般的Linux源码安装包一样,它的安装不是configure,make,make install,有点怪):
1 | ./bootstrap.sh --prefix=/usr/local/boost
|
不出错的话接着执行以下命令开始编译(也可以通过编辑project-config.jam文件调整编译参数):
1 2 | ./b2 ./b2 install
|
安装Thrift:
1 2 3 4 | chmod +x configure ./configure --with-boost=/usr/local --prefix=/usr/local/thrift make make install
|
至此,安装Thrift 的工作就完成了。
(2)用Thrift 生成访问Hbase所需的C++文件
访问Hbase需要在你的程序中使用若干.h,.cpp文件,这些文件是用 Thrift 生成的。
解压Hbase源码安装包:
1 2 | tar zxf hbase-0.90.4.tar.gz cd hbase-0.90.4
|
在解压出来的文件中, 你可以找到一个名为 Hbase.thrift 的文件,这个文件定义了如何通过 Thrift 接口来访问Hbase。用这个Thrift文件,可以生成访问Hbase所需的C++文件:
1 | /usr/local/thrift/bin/thrift --gen cpp ./src/main/resources/org/apache/hadoop/hbase/thrift/Hbase.thrift
|
会发现生成了gen-cpp目录:
1 | ls gen-cpp/
|
输出:
Hbase_constants.cpp Hbase_constants.h Hbase.cpp Hbase.h Hbase_server.skeleton.cpp Hbase_types.cpp Hbase_types.h
除了Hbase_server.skeleton.cpp之外,其余文件都是在我们的程序里要用到的,将它们拷贝到我们的工程目录下。
(3)用Thrift 生成访问Hadoop所需的C++文件
在hadoop目录下通过find命令找到*.thrift,然后用thrift命令生成即可,同(2)。