CentOS 6.4 编译 impala 1.2.2

1. 获取impala的代码

impala的开源代码在http://github.com/cloudera/Impala

通常使用release的 版本,https://github.com/cloudera/Impala/releases,当前可用的release版本为1.2.2

连接为https://github.com/cloudera/Impala/archive/v1.2.2.tar.gz

主要的安装工作参考:

https://github.com/cloudera/Impala/tree/v1.2.2

Building Cloudera Impala on CentOS 6.2



2. 安装所需包、JDK、llvm、maven

按照Building Cloudera Impala on CentOS 6.2指导完成即可


3. 编译boost库

impala c++部分的代码用到了boost库,所以首先要安装boost库。

CentOS 6.4上预装的是boost 1.41,但是impala需要更高版本的boost库(Note: Impala requires Boost 1.4.2 or later),所以先卸载掉boost 1.41

rpm -e `rpm -qa | grep boost`

再下载并编译一个高于1.41版本的boost库,这里使用1.46.1,解压后执行:

./bjam --libdir=/usr/lib64 threading=multi --layout=tagged install

注意:如果后期编译时,提示找不到libboost_thread-mt.so.5,就是因为没有加threading=multi 这个选项导致的


4.编译impala

参照Building Cloudera Impala on CentOS 6.2文章中的Building Cloudera Impala段落


5. 编译过程遇到的问题

编译impala c++部分时,报错:

/usr/include/boost/system/error_code.hpp:214: undefined reference to `boost::system::generic_category()'


百度了一下,有的说是连接时没有指定所需的boost库 -lboost_system -lboost_filesystem,

于是修改了be/CMakeLists.txt的216行,将原有的:

-lrt -lboost_date_time

改为

-lrt -lboost_date_time -lboost_system -lboost_filesystem

再对be/src/codegen/CMakeLists.txt修改,在该文件的末尾加入:

LINK_DIRECTORIES(/usr/lib64)
TARGET_LINK_LIBRARIES(CodeGen boost_filesystem  boost_system  boost_date_time )

重新编译问题解决


参考:
http://grisha.org/blog/2013/05/31/compiling-impala-from-github/



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值