WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...

Posted 清风$waj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...相关的知识,希望对你有一定的参考价值。

Hadoop之—— WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/l1028386804/article/details/51538611

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51538611

配置完hadoop启动的时候出现如下警告信息:

 

 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
问题在哪里?有人说这是hadoop的预编译包是32bit的,运行在64bit上就会有问题。但是这个答案大多数时候都是错的。

如何验证64bit还是32bit?

进入hadoop安装目录

/usr/local/hadoop-2.5.2/lib/native

用ldd命令查看依赖库

 

ldd libhadoop.so.1.0.0
会输出如下信息:

 

./libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14‘ not found (required by ./libhadoop.so.1.0.0)
        linux-vdso.so.1 =>  (0x00007fff369ff000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f3caa7ea000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f3caa455000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f3caac1b000)
可以看到依赖的都是/lib64/的动态库,所以不是64位/32位问题。但是看到报错,GLIBC_2.14找不到,现在检查系统的glibc库,  ldd --version即可检查。
输入命令:

 

ldd --version
会输出如下信息:

 

ldd (GNU libc) 2.12
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
原来系统预装的glibc库是2.12版本,而hadoop期望是2.14版本,所以打印警告信息。

现在有两个办法,重新编译glibc.2.14版本,安装后专门给hadoop使用,这个有点危险。

第二个办法直接在log4j日志中去除告警信息。在//usr/local/hadoop-2.5.2/etc/hadoop/log4j.properties文件中添加
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

以上是关于WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...的主要内容,如果未能解决你的问题,请参考以下文章

WARN [LocalManagedConnectionFactory:cleanup] 清理期间拥有的锁:

vue warn

[TestNG] [WARN] Ignoring duplicate listener : org.testng.IDEATestNGRemoteListenerEx

Mysql报警告:WARN: Establishing SSL connection

WARN [PERIODIC-COMMIT-LOG-SYNCER] 在系统日志中是啥意思?

如何获得warnings.warn发出警告而不忽略该行?