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版本,发现成功了!

[root@hadoop2 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链接的作者!

     

      

你可能感兴趣的:(hadoop,linux)