问题描述
我有一个 Hadoop 3.2.2 集群,其中包含 1 个名称节点/资源管理器和 3 个数据节点/节点管理器。
这是我的纱线站点配置
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bd-1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
当我运行示例作业时
python mr_word_count.py -r hadoop -v hdfs:///user/hduser/testme.txt
Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess Failed with code 1
at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:326)
at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:539)
at org.apache.hadoop.streaming.PipeMapper.close(PipeMapper.java:130)
到目前为止我做了什么:
- job 运行本地 python
python mr_word_count.py testme.txt
- 将
#!/usr/bin/python
和# -*-coding:utf-8 -*
添加到脚本头 - chmod a+x mr_word_count.px
- 将 master 作为单节点实例启动,然后作业开始工作!
- 检查登录webUI,没有其他信息可以找到
我可以在 .mrjob.conf 中定义 python bin 但随后错误代码更改为 126
在控制台中我看到 map 100% reduce 100%
在 WebUI 中,我还看到作业正在处理,作业消耗了 cpu 和内存。
从 4 天开始,我正在谷歌搜索和阅读 stackoverflow/haddop 文档很多小时,但没有结果。有什么想法可能出问题了吗?
解决方法
我忘记在所有节点上安装 mr_job...
在所有节点上运行这个修复了问题:
pip3 install MRJob