环境
- 宿主机: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"