1. 程式人生 > >hadoop環境搭建過程中遇到Unable to load native-hadoop library for your platform

hadoop環境搭建過程中遇到Unable to load native-hadoop library for your platform

            hadoop環境搭建完成後,在執行hadoop fs -ls 命令的時候,系統報了一個錯:

17/02/19 07:28:58 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

       對於初識hadoop的我來說,完全摸不清頭腦。就開始網上到處找解決的辦法,也走了很多彎路。

       一開始有的說是本地庫檔案的位數不對,然後我就到HADOOP_HOME/lib/native目錄下看了一眼(命令:file libhadoop.so.1.0.0),經過檢視,位數沒錯是64位的和linux系統一致的。

      然後通過檢視hadoop debug日誌知道是系統libc庫版本太低:

       先執行命令:export HADOOP_ROOT_LOGGER=DEBUG,console
      設定日誌等級。然後再次執行:hadoop fs -ls ,看到日誌資訊:

 
 
 
 
 `GLIBC_2.14' not found (required by opt/hadoop/lib/native/libhadoop.so.1.0.0)
 
     通過命令檢視系統libc版本:
strings /lib64/libc.so.6 | grep GLIBC
發現系統版本最高只有2.12,問題確定,開始升級libc版本。

      然後看到了這篇文章http://blog.csdn.net/textboy/article/details/50558240,但是按照作者的步驟執行,並沒有成功解決問題,第一次還把系統搞崩潰了~~!還好還有一個系統拷貝,於是又開始折騰,最終成功了,把libc-2.12.so升級到libc-2.14.so。參照原文作者,具體步驟整理如下:

1.下載glibc-2.14

地址:http://mirror.bjtu.edu.cn/gnu/glibc/glibc-2.14.tar.xz

2.放到系統檔案下解壓,我是放在home下的,然後依次執行如下命令:

xz -d glibc-2.14.tar.xz
tar -xvf glibc-2.14.tar
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/home/glibc-2.14
make (要等好幾分鐘,耐心點)
sudo make install(安裝完成會報兩個錯,不用管)
cd /home/glibc-2.14/lib
ln -s /hone/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6(這一步會報錯,因為/lib64/libc.so.6已經存在)

我的做法是:

ln -s /hone/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.61

mv /lib64/libc.so.61 /lib64/libc.so.6

之後在檢視libc版本,發現成功了!

[[email protected] hadoop]# strings /lib64/libc.so.6 | grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_PRIVATE

這個問題煩了我三四天,還搞崩了一個centos環境,系統我的分享能給遇到同樣問題的人帶來一點幫助,同時感謝http://blog.csdn.net/textboy/article/details/50558240連結的作者!