Node1 : hadoop2.5.2 RedhatLinux.el6 64bit构建64位本机库并且正在工作
Node2 : hadoop2.5.2 RedhatLinux.el5 32bit构建32位本机库并且正在工作
当将map还原任务作为单个节点运行时,它可以工作(通过压缩)
作为多项式,它也是工作的(没有压缩)
但作为压缩的多项式,它不起作用.
映射任务只在一个节点中完成(有时在node1中,有时在node2中),在另一个节点中它失败了,并且作业失败了。
错误: org.apache.hadoop.mapred.MapTask$MapOutputBuffer.checkSpillException(MapTask.java:1535):java.io.IOException:溢出失败。。由: org.apache.hadoop.io.compress.Lz4Codec.getCompressorType(Lz4Codec.java:124):org.apache.hadoop.io.compress.CodecPool.getCompressor(CodecPool.java:148) at org.apache.hadoop.io.compress.CodecPool.getCompressor(CodecPool.java:148)上不可用的原生lz4库引起
我试过了
<name>mapreduce.admin.user.env</name>
<value>LD_LIBRARY_PATH=$HADOOP_HOME/lib/native</value>在mapred-site.xml,但仍然不起作用.
请提出解决办法..。
发布于 2017-03-23 13:01:52
在Hadoop节点的mapred-site.xml中添加这些属性,其中作业提交解决了问题。
<property>
<name>yarn.app.mapreduce.am.admin.user.env</name>
<value>LD_LIBRARY_PATH={{HADOOP_COMMON_HOME}}/lib/native</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>LD_LIBRARY_PATH={{HADOOP_COMMON_HOME}}/lib/native</value>
</property>
<property>
<name>mapreduce.admin.user.env</name>
<value>LD_LIBRARY_PATH={{HADOOP_COMMON_HOME}}/lib/native</value>
</property>发布于 2017-01-16 08:30:03
在抛出异常的机器上为hadoop启用调试日志。重新启动hadoop进程,发布您应该能够根据NativeCodeLoader日志找出为什么没有加载本机库的帖子。
您可以使用下面的命令来验证是否加载了本机库。
hadoop checknative -ahttps://stackoverflow.com/questions/41672037
复制相似问题