错误:java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1 on AWS-

Posted

技术标签:

【中文标题】错误:java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1 on AWS-EMR 但在本地机器上工作【英文标题】:Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1 on AWS-EMR but works on local machine 【发布时间】:2020-09-13 15:55:19 【问题描述】:

我正在尝试运行一个简单的 mapreduce 代码,只是为了使用 mapper.py 读取,获取 mapper.py 的输出并通过 reducer.py 读取。这段代码在本地计算机上工作,但是当我在 aws-emr 上尝试时,它给出了以下错误 -

Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1

这里是input.txt、mapper.py和reducer.py

输入.txt

scott,haris
jenifer,smith
ted,brandy
amanda,woods
bob,wilton
damn,halloween

mapper.py

​​>
#!/usr/bin/env python

import sys

for line in sys.stdin:
    x = line.strip()
    first,last = x.split(",")
    print '%s\t%s' % (first, last)

reducer.py

​​>
#!/usr/bin/env python
import sys

for line in sys.stdin:
    x = line.strip()
    key, value = x.split('\t')
    print '%s\t%s' % (key, value)

我正在使用以下命令:

hadoop jar /usr/lib/hadoop/hadoop-streaming.jar -files s3://test/mapper.py,s3://test/reducer.py -mapper "python mapper.py" -reducer "python reducer.py" -input s3://test/input.txt -output s3://test/output

【问题讨论】:

【参考方案1】:

您似乎对 python reducer / mapper 脚本有问题,您可以检查以下两件事

1.您的MapperReducer 脚本是否可执行(确保您使用 指向正确的环境,例如尝试#!/usr/bin/python )并拥有正确的权限?

2.您的 Python 程序是正确的,例如如果服务器正在运行 python3,则您需要为print() 或脚本的任何其他问题添加括号。

尝试在emr中用bash正常执行python,看看是否有效

【讨论】:

我检查了 mapper.py 和 reducer.py。两者都是可执行的(chmod a+x mapper.py、chmod a+x reducer.py)。它在本地使用- cat input.txt | python mapper.py |排序 | python减速器.py。但不适用于使用 hadoop-streaming 的 aws emr。

以上是关于错误:java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1 on AWS-的主要内容,如果未能解决你的问题,请参考以下文章

带有 bouncycastle 库的 jar 文件:NoClassDefFoundError

Cause: java.sql.SQLException: No operations allowed after statement closed.

Spark Standalone + Zeppelin + Docker:如何设置 SPARK_HOME

JBoss - 如何在 jboss-deployment-structure 中排除 javax.validation?

win系统执行spark-sql报错:java.io.IOException: (null) entry in command string: null ls -F C: mphive

win系统执行spark-sql报错:java.io.IOException: (null) entry in command string: null ls -F C: mphive