impala編譯 編譯系統centos 5.10
說明:版本1.3.x----2.1.x都能編譯
一、預裝庫
1.gcc安裝
yum install gcc44
yum install gcc44-c++
下面的單獨安裝在編譯過程中會與系統自帶的低版本沖突
mpc-0.9.tar.gz
mpfr-3.1.2.tar.gz
gmp-5.0.1.tar.bz2
gcc-4.4.7.tar.gz
gcc-g++-4.4.7.tar.gz
http://blog.sina.com.cn/s/blog_868618f00101ij4a.html
注:安裝之后中需要將原來的/usr/bin 下的4.1.2的cc,gcc 指向4.4.7版本
並且指向的是 /usr/bin/x86_64-redhat-linux6E-gcc44而不是gcc44
g++同樣指向/usr/bin/x86_64-redhat-linux6E-g++44
卸載掉gcc-c++,它是4.1.2版本。因為有在編譯時使用的有可能是c++而不是g++編譯器,造成版本過低會引起無法識別msse4.2參數。具體情況沒有證明,我只是把它卸載了。
2.boost庫安裝
boost_1_53_0.tar.gz
安裝到系統默認路徑
編譯參數
./bjam --toolset=gcc --layout=tagged --build-type=complete --with-regex --with-system --with-thread --with-filesystem install --with-date_time
3.其它庫安裝
git-1.9.4.tar.gz ./configure --prefix=/usr/local/git-1.9.2
Python-2.7.8.tgz ./configure --prefix=/usr/local/python-2.7.8
lzo-2.06.tar.gz ./configure --enable-shared
yum install cmake libtool zlib-devel openssl-devel bzip2-devel cyrus-sasl-devel
下面的兩個LZO庫直接解壓
hadoop-lzo-0.4.15-gplextras5.0.1-SNAPSHOT.tar.gz
或
hadoop-lzo-release-0.4.19.tar.gz
impala-lzo-1.3.1-gplextras5.0.1-SNAPSHOT.tar.gz
文件下載地址
http://archive.cloudera.com/gplextras/
不同操作系統下對應的rpm包找到后直接解壓就會找到jar包。
4.工具安裝
jdk-6u45-linux-x64.bin
apache-maven-3.0.4-bin.tar.gz
setuptools-0.6c11.tar.gz 此工具用來編譯python腳本
安裝過程:
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py build
python setup.py install
5 .LLVM安裝
llvm-3.3.src.tar.gz, cfe-3.3.src.tar.gz, compiler-rt-3.3.src.tar
所需要的包以及放位置參考或文檔《LLVM編譯安裝.txt》
有一個已經將以上三個包打好的完全源碼包vip-llvm-3.3.src.tar
直接解壓可編譯安裝
http://clang.llvm.org/get_started.html
二、環境變量
其它庫的環境變量是否需要看安裝路徑,如果安裝在默認路徑就不需要,以下庫安裝在指定路徑,其它庫在默認路徑
export GIT_HOME=/usr/local/git-1.9.2
export HADOOP_LZO=/root/hadoop-lzo-0.4.15
export IMPALA_LZO=/root/impala-lzo-1.3.1
export PYTHON2_HOME=/usr/local/python-2.7.8
export MAVEN_HOME=/root/apache-maven-3.0.4
export JAVA_HOME=/root/jdk
export PATH=$GIT_HOME/bin:$PYTHON2_HOME/bin:$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
三、編譯
./buildall.sh -noclean -skiptests -codecoverage_release -codecoverage_debug
錯誤0:
/usr/local/lib/../lib/libstdc++.so: could not read symbols: File in wrong format
表示沒有安裝boost庫到標准路徑,而直接使用了標准C++造成的,直接將上面編譯boosts時安裝到標准路徑 ,
錯誤一:
/home/flh/impala-1.3.0-cdh5.0.0/be/src/statestore/failure-detector.cc: In member function ‘virtual impala::FailureDetector::PeerState impala::TimeoutFailureDetector::UpdateHeartbeat(const std::string&, bool)’:
/home/flh/impala-1.3.0-cdh5.0.0/be/src/statestore/failure-detector.cc:41: 錯誤:‘lock_guard’ 在此作用域中尚未聲明
解決:修改頭文件failure-detector.h加入#include <boost/thread/lock_guard.hpp>
錯誤二:
/home/flh/boost_1_53_0/build/include/boost/move/core.hpp:48: 錯誤:放松 ‘boost::rv<T>::~rv() [with T = impala::TNetworkAddress]’ 的 throw 限定
/home/flh/impala-1.3.0-cdh5.0.0/be/generated-sources/gen-cpp/Types_types.h:180: 錯誤: 覆蓋了 ‘virtual impala::TNetworkAddress::~TNetworkAddress() throw ()’
解決:Types_types.h頭文件中產生的所有類的析構函數的后面的throw() 關鍵詞去掉
錯誤三:
/home/flh/impala-1.3.0-cdh5.0.0/be/src/util/simple-logger.cc: In member function ‘impala::Status impala::SimpleLogger::AppendEntry(const std::string&)’:
/home/flh/impala-1.3.0-cdh5.0.0/be/src/util/simple-logger.cc:77: 錯誤:‘lock_guard’ 在此作用域中尚未聲明
解決:修改頭文件simple-logger.h添加#include <boost/thread/lock_guard.hpp>
錯誤四:
/home/flh/impala-1.3.0-cdh5.0.0/be/src/transport/TSaslServerTransport.cpp: In member function ‘virtual boost::shared_ptr<apache::thrift::transport::TTransport> apache::thrift::transport::TSaslServerTransport::Factory::getTransport(boost::shared_ptr<apache::thrift::transport::TTransport>)’:
/home/flh/impala-1.3.0-cdh5.0.0/be/src/transport/TSaslServerTransport.cpp:110: 錯誤:‘lock_guard’ is not a member of ‘boost’
解決:修改頭文件TSaslServerTransport.h添加#include <boost/thread/lock_guard.hpp>
Impala 編譯6.5以上系統
一、預裝庫
1.gcc編譯器安裝
yum install gcc
yum install gcc-c++
默認都是4.4.7版本
2.boost庫安裝
同上
3.其它庫安裝
同上
4.工具安裝
同上
5.LLVM安裝
同上
如果有錯誤,刪除了多編譯幾次
二、環境變量
其它庫的環境變量是否需要看安裝路徑,如果安裝在默認路徑就不需要,以下庫安裝在指定路徑,其它庫在默認路徑
export HADOOP_LZO=/root/hadoop-lzo-0.4.15
export IMPALA_LZO=/root/impala-lzo-1.3.1
export PYTHON2_HOME=/usr/local/python-2.7.8
export MAVEN_HOME=/root/apache-maven-3.0.4
export JAVA_HOME=/root/jdk
export PATH=$PYTHON2_HOME/bin:$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
三、編譯
同上