[hadoop] hadoop native libraries 編譯

安裝hadoop啓動以後總有警告:Unable to load native-hadoop library for your platform... using builtin-Java classes where applicablehtml

緣由:
Apache提供的hadoop本地庫是32位的,而在64位的服務器上就會有問題,所以須要本身編譯64位的版本。java

解決方法:c++

1、 去網站:http://dl.bintray.com/sequenceiq/sequenceiq-bin/  下載對應的編譯版本,解壓到hadoop安裝目錄的lib/nativegit

2、本地編譯github

1. 下載hadoop 源碼 並解壓apache

  官網下載  http://hadoop.apache.org/releases.html ,此處選擇2.8.0服務器

2. 安裝配置mavenapp

配置環境變量maven

mvn -v 驗證工具

 

3. 打包編譯

mvn package -Pdist,native -DskipTests -Dtar

構建出錯

序列化工具 protobuf 未安裝,安裝配置protobuf .

1).github 上下載protobuf  :  https://github.com/google/protobuf/releases

  解壓

配置  

./configure --prefix=/usr/local/protoc/

 

 出現錯誤

安裝c++ 庫

 yum install glibc-headers gcc-c++

再次執行配置./configure --prefix=/usr/local/protoc/

以下信息,配置成功。

執行 make && make install ,

又出錯

參考了一下google 的bug, https://github.com/google/protobuf/pull/2599/commits/141a1dac6ca572056c6a8b989e41f6ee213f8445

修改 metadata_lite.h 源碼

再次執行 make && make install , 沒有出錯信息。

 

配置環境變量,驗證 protoc --version

至此,protobuf 安裝配置成功。

繼續hadoop 編譯,臥槽 ,版本太高,重裝爲2.5.0 .

2.5.0 安裝配置過程一切正常。

繼續 hadoop 編譯

沒法執行 cmake ,安裝cmake 

繼續 hadoop 編譯

 安裝 zlib-devel  , openssl-devel 包,再次編譯hadoop.

將lib/native 下的包放到hadoop 下

 

編譯完成後執行 hadoop checknative -a ,以下信息成功。

 

至此,hadoop native 編譯結束。

native 文件 :
hadoop-2.8.0-native.tar.gz
相關文章
相關標籤/搜索