hadoop 集群上的 mapreduce 作业失败,子进程失败,代码为 1

mapreduce job failes on hadoop cluster with subprocess failed with code 1

我有一个 Hadoop 3.2.2 集群,其中有 1 个 namenode/resourceManager 和 3 个 datanodes/NodeManagers。

这是我的 yarn-site 配置

<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)

到目前为止我做了什么:

我可以在 .mrjob.conf 中定义 python bin,但随后错误代码变为 126

在控制台中我看到 map 100% reduce 100% 在 WebUI 中,我还看到作业正在处理,CPU 作业消耗了内存。

我正在谷歌搜索和阅读 Whosebug/haddop 文档,因为 4 天了很多小时都没有结果。有什么想法可能是错误的吗?

我忘记在所有节点上安装 mr_job...

运行 这在所有节点上修复了问题: pip3 install MRJob