"unable to load native-hadoop library"排查

执行 hadoop fs -ls / 报如下警告信息:

16/05/19 11:59:11 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

在执行上面的命令, 有详细的debug信息:

16/05/19 12:05:10 DEBUG util.NativeCodeLoader: Trying to load the custom-built native-hadoop library...
16/05/19 12:05:10 DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /data1/hadoop-2.6.4/lib/native/libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /data1/hadoop-2.6.4/lib/native/libhadoop.so.1.0.0)
16/05/19 12:05:10 DEBUG util.NativeCodeLoader: java.library.path=/data1/hadoop-2.6.4/lib/native
16/05/19 12:05:10 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

从debug信息可以看出,gblic_2.14没有找到,查看本地的glibc信息:

ll /lib64/libc.so.6
lrwxrwxrwx 1 root root 12 Jan 30 2015 /lib64/libc.so.6 -> libc-2.12.so

可以看出本地的 libc-2.12版本低了,找到对应的版本


wget  http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.bz2

解压并且编译安装

export CFLAGS="-g -O2"

./glibc-2.14/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

make 
make install

再执行 hadoop fs -ls / 就不会出现如上的警告信息了