解決Hadoop和Spark本地版本庫不統(tǒng)一的問題
就是報以下這個警告的,也不知道對運行程序究竟會產(chǎn)生什么樣的影響,但看著就是不爽,還耽誤了我?guī)滋鞎r間,把它給解決了,這里記一下,方便以后查找。

unable to load native-hadoop library for your platform... using builtin-java classes where applicable
先是運行的時候報該錯誤,當(dāng)時發(fā)現(xiàn)是由于Hadoop所需要的版本庫和系統(tǒng)本地的glibc的版本庫不一致導(dǎo)致的,但是有一個問題是系統(tǒng)本地庫的地址是在根目錄的lib和lib64下面,由于對服務(wù)器沒有root權(quán)限,是無法修改該庫的版本的,因此到這里,網(wǎng)上說的大部分解決方案都不行了。
既然不能修改本地庫,那就考慮修改環(huán)境變量中的PATH,PATH路徑要保證讀的庫地址要在本地庫地址路徑的前面,因為PATH只要找到結(jié)果就會返回,那么我們就把路徑/home/work/lacol/加進去并放在前面。
我們需要自己編譯一個合適的版本庫,例如編譯到/home/work/local/glibc目錄中,然后把該目錄同步到其他相同的服務(wù)器,然后用軟鏈接,注意在集群上批量執(zhí)行該命令:
ln -s /home/work/local/glibc/libc.so /home/work/local/lib64/libc.so.6
以上就解決了的版本庫的問題,可是打開Spark,發(fā)現(xiàn)Spark還報版本庫的錯誤,網(wǎng)上給的 該解決方案并不能解決該問題,后來在spark-env.sh中增加了lib64的地址,最終邊為如下:
export
LD_LIBRARY_PATH=$SPARK_SUBMIT_LIBRARY_PATH:$HADOOP_HOME/lib/native:/home/work/local/lib/:/home/work/local/lib64/
再SCP到所有集群上面,遂解決。
詳情請咨詢!
客服熱線:023-66090381