首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop任务在2节点集群中使用压缩时失败。但是当两个节点作为单个节点运行时,两个节点都可以正常工作。

问Hadoop任务在2节点集群中使用压缩时失败。但是当两个节点作为单个节点运行时,两个节点都可以正常工作。
EN

Stack Overflow用户
提问于 2017-01-16 08:19:39
回答 2查看 216关注 0票数 0

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库引起

我试过了

代码语言:javascript
复制
<name>mapreduce.admin.user.env</name>
 <value>LD_LIBRARY_PATH=$HADOOP_HOME/lib/native</value>

在mapred-site.xml,但仍然不起作用.

请提出解决办法..。

EN

回答 2

Stack Overflow用户

发布于 2017-03-23 13:01:52

在Hadoop节点的mapred-site.xml中添加这些属性,其中作业提交解决了问题。

代码语言:javascript
复制
    <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>
票数 1
EN

Stack Overflow用户

发布于 2017-01-16 08:30:03

在抛出异常的机器上为hadoop启用调试日志。重新启动hadoop进程,发布您应该能够根据NativeCodeLoader日志找出为什么没有加载本机库的帖子。

您可以使用下面的命令来验证是否加载了本机库。

代码语言:javascript
复制
hadoop checknative -a
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41672037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档