hadoop2.6.0 在64位CentOS 6.4系統上的編譯

jopen 8年前發布 | 8K 次閱讀 分布式/云計算/大數據

直接使用官網上下載的hadoop2.6.0在運行時候經常都會遇到WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable警告
這是因為hadoop本地庫和系統不兼容導致,這個時候我們就需要手動在系統上編譯hadoop了


所需包:
jdk-6u29-linux-x64.bin
下載地址:http://download.csdn.net/detail/tonylllz/9385886

apache-ant-1.9.6-bin.tar.gz
下載地址:http://download.csdn.net/detail/tonylllz/9385789

apache-maven-3.2.5-bin.tar.gz
下載地址:http://download.csdn.net/detail/tonylllz/9385793

findbugs-3.0.1.tar.gz
下載地址:http://download.csdn.net/detail/tonylllz/9385813

hadoop-2.6.0-src.tar.gz
下載地址:http://download.csdn.net/detail/tonylllz/9385803

protobuf-2.5.0.tar.gz
下載地址:http://download.csdn.net/detail/tonylllz/9385811

這里需要注意:
①因為筆者的linux系統是64位的所以需要的jdk也必須是64位的,否則在編譯過程會一直去尋找32位的各個插件進行運行,進而導致錯誤
②protobuf必須是2.5.0版本的

好了,下面我們開始安裝、編譯吧~

①jdk安裝:

./jdk-6u29-linux-x64.bin
mv ./$jdk_bin_dir /usr/local/jdk
ln -s /usr/local/jdk/bin/java /usr/bin/java
ln -s /usr/local/jdk/bin/jps /usr/bin/jps

vim /etc/profile 添加
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin:

保存退出/etc/profile,并執行 source /etc/profile



執行java -version  若出現一下內容則表示jdk安裝成功

②安裝protobuf


因為protobuf的安裝需要用到c++編譯,所以這里需要安裝gcc 等工具
yum -y install gcc+ gcc-c++
yum -y install make

tar zxvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure --prefix=/usr/local/protobuf
make
make check
make install

vim /etc/profile 添加
export PATH=$PATH:/usr/local/protobuf/bin/
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
保存退出/etc/profile,并執行 source /etc/profile

配置動態鏈接庫路徑
vim /etc/ld.so.conf
插入:
/usr/local/protobuf/lib

執行 protoc --version 出現以下內容則表示安裝成功
libprotoc 2.5.0



③安裝ant

tar zxvf apache-ant-1.9.6-bin.tar.gz
vim /etc/profile 添加
export ANT_HOME=/home/hadoop/apache-ant-1.9.6
export PATH=$PATH:$ANT_HOME/bin
保存退出/etc/profile,并執行 source /etc/profile






④安裝maven

tar zxvf apache-maven-3.2.5-bin.tar.gz
vim /etc/profile 添加
export MAVEN_HOME=/home/hadoop/apache-maven-3.2.5
export PATH=$PATH:$MAVEN_HOME/bin
保存退出/etc/profile,并執行 source /etc/profile



⑤安裝findbugs

tar zxvf findbugs-3.0.1.tar.gz
vim /etc/profile 添加
export FINDBUGS_HOME=/home/hadoop/findbugs-3.0.1
export PATH=$PATH:$FINDBUGS_HOME/bin
保存退出/etc/profile,并執行 source /etc/profile



⑤開始編譯

在編譯hadoop過程會需要用到cmake,automake,libtool,zlib,openssl 所以這里我們也先安裝下,可以直接用linux的yum安裝
yum -y install cmake
yum -y install automake
yum -y install libtool
yum -y install zlib
yum -y install zlib-devel
yum -y install openssl
yum -y install openssl-devel

查看PATH系統變量至少包括下面內容:



tar zxvf hadoop-2.6.0-src.tar.gz
cd hadoop-2.6.0-src
mvn package -Pdist,native -DskipTests -Dtar

如果是第一次編譯所需的時間會比較久,因為需要去遠程倉庫將要用的包一個個下載下來,若有現車的倉庫,可以直接上傳到linux的本地庫,這樣會加快編譯的速度。

編譯成功后顯示



編譯成功后的包在 hadoop-2.6.0-src/hadoop-dist/target下



補充說明下,編譯過程難免會遇到問題,本篇文件已經將遇到的問題所需的包都在編譯前提出,并安裝好了,但大家的系統環境難免和筆者有所不同。這里舉例說明下在遇到編譯錯誤的時候該如何去解決

解決方法:
yum -y install zlib
yum -y install zlib-devel



來自: http://my.oschina.net/u/998693/blog/595349

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!