【问题标题】:Coursera Bigdata Grader and how to set Hadoop Streaming number of reducers?Coursera Bigdata Grader 以及如何设置 Hadoop Streaming 的 reducer 数量?
【发布时间】: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


【解决方案1】:

我需要删除“2> $LOGS”部分。那是分级机的问题,因为它暗示我不会捕获日志并且不会将其写入文件,至少我不应该自己做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-06
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多