因为我们使用的是社区版本的Hadoop,Cloudera发布的Impala二进制如法执行,具体表现是log会出现pb序列化的问题,逼不得已只能用社区版的Hadoop从头编译Impala。具体过程记录如下:
- 选一个Centos7 的机器。Centos 6会因为某些库依赖导致无法编译通过。内存不要小于4G,否则会出问题。
yum install python-devel cmake openssl java-1.8.0-openjdk-devel gcc gcc-c++ lzo-devel cyrus-sasl-devel java maven python pip
- pip install sh
- download package, unzip and cd into it
python bin/boot*.py
(自动下载编译工具)- 将
thirdparty
目录中的CDH版的Hadoop替换成社区的Hadoop,将bin/impala-config.sh
中的IMPALA_HADOOP_VERSION
替换成社区的版本号。 ./buildall.sh -notests -noclean
- After compilation, 313MB binary is generated !!
最后出来的二进制文件很大,应该是某些优化项没有打开导致的,目前还没找到。折腾了好几天也只能有这个,不具备测试条件。之后有机会了继续。