错误: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.您的Mapper
和Reducer
脚本是否可执行(确保您使用 指向正确的环境,例如尝试#!/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