【发布时间】:2021-12-31 09:22:11
【问题描述】:
我正在尝试通过 Coursera 上的课程任务,但在某些单元测试中失败并出现以下错误:
RES1_6 描述:第一个作业应该有多个reducer或 根本不应该拥有它们。请在
-D mapreduce.job.reduces中设置合适的号码。它可以是 0 或大于 1。
但是,我在以下脚本中使用 NUM_REDUCERS=4!
yarn jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-streaming.jar \
-D mapreduce.job.name="somename" \
-D mapreduce.job.reduces=${NUM_REDUCERS}\
-files mapper.py,reducer.py,somesupplimentary.txt \
-mapper "python3 mapper.py" \
-reducer "python3 reducer.py" \
-input someinput.txt \
-output ${OUT_DIR} > /dev/null 2> $LOGS
当我阅读日志时,我看到以下内容:
Job Counters
Killed reduce tasks=1
Launched map tasks=2
Launched reduce tasks=9
Data-local map tasks=2
所以我觉得自己很愚蠢,完全不明白评分员想从我这里得到什么。这对我来说根本不是连续的照片。似乎我使用了不止一个减速器,并且日志似乎批准了它。为什么单元测试会失败?还是我不理解一些朴素的真理?
【问题讨论】:
-
Killed reduce tasks=1表示reducer 代码中有一个错误导致它死亡。我会查看减速器日志,看看发生了什么。
标签: bash hadoop mapreduce hadoop-yarn hadoop-streaming