centos 7 Impala cdh6.3.3原始碼編譯
impala git地址:https://github.com/cloudera/Impala (這裡可以看到impala目前的各個版本)
impala原始碼下載地址如下
https://codeload.github.com/cloudera/Impala/zip/cdh5-2.12.0_5.16.1
https://codeload.github.com/cloudera/Impala/zip/cdh6.3.3
上傳到/home/check/impala_src目錄
unzip Impala-cdh6.3.3.zip
vi bin/bootstrap_system.sh修改該檔案(原始的ant和maven下載網址已經無法訪問)
把Ant的下載地址換成如下地址,註釋掉 sha512sum 校驗,並且在wget時加上--no-check-certificate選項(否則會提示Issued certificate has expired,use no-check-certificate):
命令為:wget -nv --no-check-certificate https://dlcdn.apache.org/ant/binaries/apache-ant-1.10.12-bin.tar.gz
把Maven的下載地址換成如下地址,並註釋掉 sha512sum 校驗,同樣加上--no-check-certificate選項:
wget -nv --no-check-certificate https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz
因為在bootstrap_system.sh中會去下載impala-lzo和hadoop-lzo,可以提前本地下載好(否則指令碼執行下載時很有可能超時失敗),然後放在$IMPALA_HOME下面,分別為Impala-lzo和hadoop-lzo(配置檔案中是這樣命名的)
git clone --branch master https://github.com/cloudera/impala-lzo.git
git clone https://github.com/cloudera/hadoop-lzo.git
在bin/bootstrap_toolchain.py中加入如下程式碼,否則會報錯: 'ascii' codec can't encode character u'\u2018' in position 558: ordinal not in range(128)
reload(sys)
sys.setdefaultencoding('utf-8')
執行編譯
export IMPALA_HOME=/home/check/impala_src/Impala-cdh6.3.3
cd $IMPALA_HOME
./bin/bootstrap_system.sh
source bin/impala-config.sh
./buildall.sh -noclean -notests
有關bin/bootstrap_toolchain.py,要作如下修改
1、在指令碼開頭加上如下兩條語句
reload(sys)
sys.setdefaultencoding('utf-8')
否則會報錯: 'ascii' codec can't encode character u'\u2018' in position 558: ordinal not in range(128)
2、並註釋掉有關download_cdh_components的程式碼,與之相關的依賴包為如下5個(否則會去官網下載檔案,現在官網不讓免費下載了,可以自行去文末的連結中找到,然後上傳到toochain目錄下)
把下列5個檔案上傳到toolchain/cdh_components-下,然後依次用tar命令解壓
hadoop-3.0.0-cdh6.x-SNAPSHOT.tar.gz
hbase-2.1.0-cdh6.x-SNAPSHOT.tar.gz
hive-2.1.1-cdh6.x-SNAPSHOT.tar.gz
kudu-1.10.0-cdh6.x-SNAPSHOT.tar.gz
sentry-2.1.0-cdh6.x-SNAPSHOT.tar.gz
然後依次用mv更名,否則可能會報諸如HDFS_INCLUDE_DIR-NOTFOUND一類錯誤
mv hadoop-3.0.0-cdh6.x-SNAPSHOT hadoop-3.0.0-cdh6.3.3-
mv hbase-2.1.0-cdh6.x-SNAPSHOT hbase-2.1.0-cdh6.3.3-
mv hive-2.1.1-cdh6.x-SNAPSHOT hive-2.1.1-cdh6.3.3-
mv kudu-1.10.0-cdh6.x-SNAPSHOT kudu-1.10.0-cdh6.3.3-
mv sentry-2.1.0-cdh6.x-SNAPSHOT/ sentry-2.1.0-cdh6.3.3-
發現錯誤過程如下:
1、首先頁面報如下錯誤
2、去檢視cmake_modules/FindHDFS.cmake檔案
3、查詢HADOOP_INCLUDE_DIR環境變數的值
由上圖所示,因此需要把解壓後的hadoop-3.0.0-cdh6.x-SNAPSHOT改為hadoop-3.0.0-cdh6.3.3-
編譯前,總計27個檔案,如下圖所示:
參見
1、https://blog.csdn.net/qqqq0199181/article/details/98515118
2、https://www.cnblogs.com/liuzx8888/p/12290804.html
感謝liuzx8888這位作者提供的雲盤下載地址
連結:https://pan.baidu.com/s/1TCGTW0QS00zJi8iGsn5bmQ
提取碼:rzkx