赞
踩
上来不多说,百度收集些相关文档比可参考文章:
Hadoop之—— WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform…
hadoop 版本:CDH hadoop-2.6.0-cdh5.9.3.tar.gz
https://blog.csdn.net/l1028386804/article/details/51538611
[大数据入门]解决centos6.5中WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platfor
https://blog.csdn.net/u012425536/article/details/78770410
异常解决:util.NativeCodeLoader: Unable to load native-hadoop library for your platform
https://blog.csdn.net/young_kim1/article/details/50324345
网上说可以能不是linux 操作系统默认 64位 而 系统是 32位,那我们要自己验证一下。
[root@localhost native]# uname -r
2.6.32-754.25.1.el6.x86_64
再看下 libhadoop.so.1.0.0 库 的版本
[root@localhost native]# file libhadoop.so.1.0.0
libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
本人启动失败原因是因为/hadoop-2.6.0-cdh5.9.3/lib/native 本地库目录下为空,把之前环境的或者网上找native 库拷贝到目录就可以 个人已验证
其实是依赖库的问题
我们对静态库查看下依赖:看下依赖是否都正常:
通过指令 ldd libhadoop.so.1.0.0
[root@localhost 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 => (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)
可以看到是glibc 版本的问题:
我们再确认下:
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 目前支持的版本:
通过如下查询方法:
strings /lib64/libc.so.6|grep GLIBC
[root@localhost native]# strings /lib64/libc.so.6|grep GLIBC GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.5 GLIBC_2.6 GLIBC_2.7 GLIBC_2.8 GLIBC_2.9 GLIBC_2.10 GLIBC_2.11 GLIBC_2.12 GLIBC_2.13 GLIBC_2.14 GLIBC_2.15 GLIBC_2.16 GLIBC_2.17 GLIBC_PRIVATE
Glibc 升级:
Glibc 升级这里我们采用从源码编译安装的方法:
我也尝试了直接从rpm 包 安装的方式,但是并不成功,主要是系统中应用依赖的问题,
可以参看这篇文章 : rpm 包安装:
[大数据入门]解决centos6.5中WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platfor
https://blog.csdn.net/u012425536/article/details/78770410
由于怕导致系统出问题,没有直接卸载原有的 rpm 包。
下载源码:
http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
这里可以选择你所需要的版本。
执行指令:
wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
[root@kafzook1 common]# tar -xf glibc-2.17.tar.gz [root@kafzook1 common]# cd glibc-2.17 [root@kafzook1 glibc-2.17]# mkdir build; cd build [root@kafzook1 build]# ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin [root@kafzook1 build]# make -j 8 [root@kafzook1 build]# make install [root@kafzook1 common]# strings /lib64/libc.so.6 | grep GLIBC 会看到下面的结果 GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.5 GLIBC_2.6 GLIBC_2.7 GLIBC_2.8 GLIBC_2.9 GLIBC_2.10 GLIBC_2.11 GLIBC_2.12 GLIBC_2.13 GLIBC_2.14 GLIBC_2.15 GLIBC_2.16 GLIBC_2.17 GLIBC_PRIVATE
更新后检验:
[root@localhost java]# hadoop fs -ls /
Found 1 items
-rw-r--r-- 1 root supergroup 56 2020-03-26 23:28 /text.txt
vim /etc/profile中,添加下面配置:
export HADOOP_HOME=/wwwzyy/java/hadoop-2.6.0-cdh5.9.3/
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
最后记得使配置生效:source /etc/profile
并把相同配置添加到/etc/hadoop/hadoop-env.sh文件末尾。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。