hadoop启动dfs的warn问题解决

来源:互联网 发布:mac删除当前用户 编辑:程序博客网 时间:2024/05/22 03:27

 1 问题

   在启动dfs,start-dfs.sh和hdfs dfs -ls /等命令执行的时候,一直出现

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

2 原因  

 增加调试信息设置

$ export HADOOP_ROOT_LOGGER=DEBUG,console

-------------------------------------------------------------------------------
关于HADOOP_ROOT_LOGGER的含义
修改$HADOOP_CONF_DIR/log4j.properties文件 hadoop.root.logger=ALL,console
or: (只对一次会话有效)
开启:export HADOOP_ROOT_LOGGER=DEBUG,console
关闭:export HADOOP_ROOT_LOGGER=INFO,console
-------------------------------------------------------------------------------

再次执行hdfs dfs -ls /
15/09/30 11:48:08 DEBUG util.NativeCodeLoader: Trying to load the custom-built native-hadoop library...
15/09/30 11:48:08 DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /opt/hadoop-2.7.1/lib/native/libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/hadoop-2.7.1/lib/native/libhadoop.so.1.0.0)

可以看到上述的信息,即缺少glibc_2.14,百度得到的信息为软件编译用的机器上的glibc版本比执行命令的linux机器上的glibc版本高

需要安装glibc_2.14或者更高版本

3 解决

去http://ftp.gnu.org/gnu/glibc/下载glibc-2.14.tar.gz

安装:
      在解压后的glibc源码目录建立构建目录build,并cd进入构建目录
 mkdir build
 cd build
 ../configure --prefix=/opt/glibc-2.14  #计划安装到/opt对应目录下,不需事先创建
make -j4 
make install
在make install的时候可能会报错,找不到一个文件ld.so.conf,用find命令找下,发现在/etc目录下,将它拷贝到/opt/glibc-2.14/etc/下
再次执行make install即可

安装完后,执行hdfs依然会出现警告

将libc.so.6拷贝到hadoop lib下:cp /opt/glibc-2.14/lib/libc.so.6 /opt/hadoop-2.7.1/lib/native/

执行hdfs不再出现警告

将libc.so.6 拷贝到hadoop集群每个节点的lib下:scp libc.so.6 slave169:/opt/hadoop-2.7.1/lib/native/

不需要重启dfs,每个节点都不再报warn信息

参考资料:http://www.xuebuyuan.com/642177.html

0 0
原创粉丝点击