节点1: hadoop2.5.2 RedhatLinux.el6 64bit
建立64位本机库,它正在工作
节点2: hadoop2.5.2 RedhatLinux.el5 32bit
建立32位本机库,它的工作
当以单个节点运行map reduce任务时,它可以工作(使用压缩)
作为多节点,它也在工作(没有压缩)
但作为多节点压缩,它不起作用。。。。
Map任务仅在其中一个节点(node1中的somtimes,node2中的sometimes)中完成,而在另一个节点中,Map任务失败,出现错误,作业失败。
错误:java.io.ioexception:spill在org.apache.hadoop.mapred.maptask$mapoutputbuffer.checkspillexception(maptask)失败。java:1535)在。原因:java.lang.runtimeexception:org.apache.hadoop.io.compress.lz4codec.getcompressortype(lz4codec)上的本机lz4库不可用。java:124)在org.apache.hadoop.io.compress.codecpool.getcompressor(codecpool。java:148)在
我试过了
<name>mapreduce.admin.user.env</name>
<value>LD_LIBRARY_PATH=$HADOOP_HOME/lib/native</value>
在mapred-site.xml中,但仍不工作。。。
请提出一个解决方案。。。
2条答案
按热度按时间omtl5h9j1#
在提交作业的hadoop节点的mapred-site.xml中添加这些属性解决了问题。
nhn9ugyo2#
在引发异常的计算机中为hadoop启用调试日志。重新启动hadoop进程,根据日志发布您应该能够弄清楚
NativeCodeLoader
以及本机库未加载的原因。您可以使用下面的命令来验证是否加载了本机库。