怎么解决Hadoop2.7启动报WARNutil.NativeCodeLoader的问题

本篇内容主要讲解“怎么解决Hadoop2.7启动报WARN util.NativeCodeLoader的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决Hadoop2.7启动报WARN util.NativeCodeLoader的问题”吧!

创新互联建站专注于网站建设|成都网站维护|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖成都岗亭等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身建设品质网站。

配置环境:ubutun14.04 64位

hadoop2.7

今天启动hadoop2.7报 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 问题。

怎么解决Hadoop2.7启动报WARN util.NativeCodeLoader的问题

搜索了一下结果后,网上普遍是如下解决办法:

在.bashr 或/etc/profile添加本地库语句:

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

但是这种办法在我这里不适用。于是查找其他办法,后来详读了一下官网本地库介绍(http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/NativeLibraries.html)和网上资料(http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/NativeLibraries.html)后,才发现是util.NativeCodeLoader问题,代码参看http://grepcode.com/file/repo1.maven.org/maven2/com.ning/metrics.action/0.2.6/org/apache/hadoop/util/NativeCodeLoader.java/。

于是按照介绍,在$Hadoop_home/etc/hadoop/目录下打开log4j.properties,在里面添加语句:log4j.logger.org.apache.hadoop.util.NativeCodeLoader=DEBUG,启动还报错

DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /opt/hadoop/lib/native/libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/hadoop/lib/native/libhadoop.so.1.0.0)。

改成log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR后,启动不报错了,结果如下

怎么解决Hadoop2.7启动报WARN util.NativeCodeLoader的问题

这么修改的原因可以自己仔细琢磨。

主要参考:

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/NativeLibraries.html

http://stackoverflow.com/questions/19943766/hadoop-unable-to-load-native-hadoop-library-for-your-platform-warning

到此,相信大家对“怎么解决Hadoop2.7启动报WARN util.NativeCodeLoader的问题”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


当前题目:怎么解决Hadoop2.7启动报WARNutil.NativeCodeLoader的问题
当前地址:http://azwzsj.com/article/igsois.html