【问题标题】:Intermediate output when a reducer is specified指定减速器时的中间输出
【发布时间】:2014-01-21 20:55:01
【问题描述】:

我编写了一个 Hadoop Map Reduce 作业。当我在本地运行它时,我注意到如果我不指定任何 reduce 任务,则会有一些临时文件写入输出目录。如果我指定减速器,则不会写入临时文件。这是正常行为吗?我希望看到写入的临时文件,否则这意味着映射器正在尝试在内存中执行所有操作,然后传输到内存中的减速器。这让我觉得难以置信。

任何关于映射器如何/何时/何处将中间输出写入文件系统的见解将不胜感激。

谢谢

【问题讨论】:

    标签: hadoop


    【解决方案1】:

    Map 任务将其输出写入本地磁盘,而不是 HDFS。地图输出 是中间输出:它由reduce任务处理以产生最终输出,并且 一旦工作完成,地图输出就可以被丢弃。所以将其存储在 HDFS 中, 与复制,将是矫枉过正。

    但是,如果我们将 reducer 的数量设置为 0,则 map 输出作为最终输出存储在 HDFS 上。没有减少阶段,因此映射器的输出是整个作业的输出。

    另外here 是如何查看中间文件,即使指定了reducer。

    【讨论】:

    • 这很有意义。谢谢!
    猜你喜欢
    • 2018-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多