解決Hadoop和Spark本地版本庫不統一的問題
就是報以下這個警告的,也不知道對運行程序究竟會產生什么樣的影響,但看著就是不爽,還耽誤了我幾天時間,把它給解決了,這里記一下,方便以后查找。

unable to load native-hadoop library for your platform... using builtin-java classes where applicable
先是運行的時候報該錯誤,當時發現是由于Hadoop所需要的版本庫和系統本地的glibc的版本庫不一致導致的,但是有一個問題是系統本地庫的地址是在根目錄的lib和lib64下面,由于對服務器沒有root權限,是無法修改該庫的版本的,因此到這里,網上說的大部分解決方案都不行了。
既然不能修改本地庫,那就考慮修改環境變量中的PATH,PATH路徑要保證讀的庫地址要在本地庫地址路徑的前面,因為PATH只要找到結果就會返回,那么我們就把路徑/home/work/lacol/加進去并放在前面。
我們需要自己編譯一個合適的版本庫,例如編譯到/home/work/local/glibc目錄中,然后把該目錄同步到其他相同的服務器,然后用軟鏈接,注意在集群上批量執行該命令:
ln -s /home/work/local/glibc/libc.so /home/work/local/lib64/libc.so.6
以上就解決了的版本庫的問題,可是打開Spark,發現Spark還報版本庫的錯誤,網上給的 該解決方案并不能解決該問題,后來在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