配置完hadoop启动的时候出现如下警告信息但是会正常显示结果:
[hadoop@min1 ~]$ hadoop fs -ls /
18/05/26 19:14:46 WARN util.NativeCodeLoader: Unable to load native-hadoop libra
ry for your platform... using builtin-java classes where applicable
Found 4 items
drwxr-xr-x - hadoop supergroup 0 2018-05-25 10:57 /test
1.问题:为什么会有警告?
提示不能加载本地hadoop库......虽然能运行, 但是有警告是不是看着很不爽?
那就让我们先来查看一下依赖库
---->进入hadoop安装目录
[hadoop@min1 ~]$ cd /home/hadoop/develop_env/hadoop-2.7.1/lib/native/
用ldd命令查看依赖库, 会输出如下信息:
[hadoop@min1 native]$ 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 => (0x00007fff853ff000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fea1fafb000)
libc.so.6 => /lib64/libc.so.6 (0x00007fea1f766000)
/lib64/ld-linux-x86-64.so.2 (0x00007fea1ff28000)
这里简单说一下ldd命令。 在linux中, ldd是list, dynamic, dependencies的缩写, 意思是, 列出动态库依赖关系。我们可以用ldd --help命令来查看其用法,这里就不做列举了!
GLIBC_2.14版本未不到,现在检查系统的glibc库, ldd --version即可检查。
[hadoop@min1 native]$ 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.
看到没有? glicb是2.12版本, 而hadoop期望的是2.14版本,所以给了个警告信息
现在有两个办法,重新编译glibc.2.14版本,安装后专门给hadoop使用,这个有点危险。第二个办法直接在log4j日志中去除告警信息。
---->进入到hadoop安装目录/etc/hadoop/ 如下 :
[hadoop@min1 ~]$ cd /home/hadoop/develop_env/hadoop-2.7.1/etc/hadoop/
修改如下文件 :
[hadoop@min1 hadoop]$ vi ./log4j.properties
在该文件末尾增加一行 :
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
再来运营hadoop指令 :
[hadoop@min1 hadoop]$ hadoop fs -ls /
Found 4 items
drwxr-xr-x - hadoop supergroup 0 2018-05-25 10:57 /test
解决!!!
顺便提一句, 如果你是集群的话 ,那么每一台都要去除警告信息才行 ,不然用其他机器执行hadoop指令一样有警告哈!