[已解决]hadoop报错: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platfor

  • Post author:
  • Post category:其他




环境

  • 宿主机:Windows 10 64_bit
  • 虚拟机:VMware pro 12

    • CentOS 7.5 64_bit(3台:1个master、2个slave)
    • Hadoop-2.6.5
  • ssh工具:SecureCRT 7.3
[root@master mydb]# hadoop fs -ls /
19/07/02 14:13:27 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 7 items
drwxr-xr-x   - root supergroup          0 2019-04-26 12:26 /data
drwxr-xr-x   - root supergroup          0 2019-05-25 20:50 /hadoop
...

意思是:WARN级别的警告(也就是说:

对后续操作比如

hadoop fs

和hive等不影响

,不是强迫症的可以暂时无视它,哈哈),无法为平台加载本地hadoop库…可使用合适的内置java类。

网友说是因为glibc库跟hadoop不一致的问题,但我这应该和这位的原因不一样。因为下方并没有报错:

[root@master native]# pwd
/usr/local/src/hadoop-2.6.5/lib/native
ldd --version
[root@master native]# ldd (GNU libc) 2.17
Copyright (C) 2012 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.
[root@master native]# ldd libhadoop.so.1.0.0
        linux-vdso.so.1 =>  (0x00007fff21d9f000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fef14051000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fef13c84000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fef14476000)
[root@master native]#

方法1:

所以还是参考网友的方法:直接在log4j日志中去除告警信息。

[root@master hadoop]# pwd
/usr/local/src/hadoop-2.6.5/etc/hadoop
[root@master hadoop]# vim log4j.properties
...
....
在文件尾部添加下方这句:
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

不过这招:治标不治本。最终还是没有成功加载

native-hadoop library



因此忽视这个方法。

方法2:针对

ldd --version

没有提示:

version GLIBC_2.xxx not found

的 解决方案是让它成功加载

native-hadoop library

在hadoop下

/etc/hadoop/hadoop-env.sh

文件下

第52行

后面添加下方配置:

export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"

参考:


大佬博客1



博客2



版权声明:本文为weixin_38256474原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。