Hadoop原始碼包的編譯
1.工具準備,最靠譜的是hadoop說明文件裡要求具備的那些工具。
到hadoop官網,點選source下載hadoop-2.7.3-src.tar.gz。
解壓之
tar -zxvf hadoop-2.7.3-src.tar.gz
得到hadoop-2.7.3-src資料夾。
進入hadoop-2.7.3-src資料夾,檢視BUILDING.txt
cd hadoop-2.7.3-src vim BUILDING.txt
可以看到編譯所需的庫或者工具:
包括:
JDK1.7+
maven 3.0 or later
findbugs 1.3.9
protocolBuffer 2.5.0
cmake 2.6
zlib-devel
openssl-devel
除了上面這些,為了不出錯,實際還需要autoconf automake gcc等。
下面開始準備這些工具:
首先使用su命令獲取root許可權,以免受到各種限制
2.下載jdk-7u102-linux-x64.tar.gz,解壓後移動到/opt目錄下
tar -zxvf jdk-7u102-linux-x64.tar.gz
mv jdk1.8.0_102/opt
然後開啟/etc/profile配置jdk環境變數
vim /etc/profile
按 i 進入插入模式,在檔案末尾新增
export JAVA_HOME=/opt/jdk1.8.0_102
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=/opt/jdk1.8.0_102/jre
export PATH=$PATH:$JRE_HOME/bin
先後按Esc, Shift+:, wq, 回車即可儲存並退出編輯。
輸入 source /etc/profile 回車即可儲存更改。
執行javac -version 檢視狀態:
3.下面安裝各種庫,
yum -y install svn ncurses-devel gcc*
yum -y install lzo-devel zlib-devel autoconf automake libtool cmake openssl-devel
4.安裝protobuf-2.5.0.tar.gz(注意版本必須是2.5.0)
protobuf-2.5.0.tar.gz下載地址:http://pan.baidu.com/s/1pJlZubT
tar zxvf protobuf-2.5.0.tar.gz
進入protobuf-2.5.0依次執行
cd protobuf-2.5.0 進入目錄
# 指定安裝路徑 ./configure --prefix=/usr/local/protobuf #編譯 make # 測試,這一步很耗時間 make check make install # refresh shared library cache. ldconfig
#設定環境變數 /etc/profile
export PATH=$PATH:/usr/local/protobuf/bin
#檢視版本
protoc --version
5.安裝maven (注意,如果下載很慢或者經常失敗,建議更換maven的下載源,方法在另一篇部落格中有說明)
下載apache- maven- 3.3.3- bin.tar.gz
解壓縮並配置環境變數
解壓:
tar -zxvf apache-maven-3.3.3-bin.tar.gz
移動到/opt目錄下:
mv apache-maven-3.3.3 /opt
配置環境變數:
vim /etc/profile
在末尾新增:
export MAVEN_HOME=/opt/apache-maven-3.3.3
export MAVEN_OPTS="-Xms256m -Xmx512m"
export PATH=$PATH:$MAVEN_HOME/bin
先按Esc, Shift+:, wq, 回車即可儲存並推出編輯。
輸入 source /etc/profile 回車即可儲存更改。
檢視安裝狀態: mvn -version
看到
6.安裝ant
下載apache-ant-1.9.4-bin.tar.gz
解壓縮並配置環境變數
解壓:
tar -zxvf apache-ant-1.9.4-bin.tar.gz
移動到/opt目錄下
mv apache-ant-1.9.4 /opt
配置環境變數
同上,在/etc/profile檔案末未新增:
export ANT_HOME=/opt/apache-ant-1.9.4
export PATH=$PATH:$ANT_HOME/bin
然後儲存,退出,並使更改生效。
檢視安裝結果:
ant -version
7.安裝findbugs
下載findbugs-3.0.1.tar.gz,選擇上面的standard version即可
解壓縮並配置環境變數
解壓:
tar -zxvf findbugs-3.0.1.tar.gz
移動到 /opt目錄下
mv findbugs-3.0.1 /opt
配置環境變數:
在 /etc/profile 檔案末尾新增:
export FINDBUGS_HOME=/opt/findbugs-3.0.1
export PATH=$PATH:$FINDBUGS_HOME/bin
儲存退出,並使更改生效。
檢視安裝結果
8.準備完成,下面開始編譯hadoop
進入到hadoop-2.7.3-src目錄
vim hadoop-common-project/hadoop-auth/pom.xml
vim /hadoop-common-project/hadoop-common/pom.xml
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-annotations</artifactId>
<scope>compile</scope>
</dependency>
將節點hadoop-annotations的值由provide 改成compile
使用命令:
mvn clean package –Pdist,native –DskipTests –Dtar
或者:
mvn package -Pdist,native -DskipTests -Dtar
進行編譯。
務必保持網路暢通,經過漫長的等待(本人的比較慢,花了2小時57分鐘)!
編譯好的檔案在/hadoop-dist/target/hadoop-2.7.3.tar.gz下。
注意事項:
1.所有命令,建議手敲,不建議複製貼上,以避免因為頁面空格造成的不必要錯誤。
2.務必保持網路暢通,如果出現缺少某個檔案,則要先清理maven(使用命令 mvn clean) 再重新編譯。
3.如果總是出現同一個錯誤導致編譯失敗,則可能是缺少某個庫或者工具,檢查上述工具是否都安裝成功,並且版本正確。