hadoop - "merge"在 MapReduce 中是什么意思?

标签 hadoop mapreduce

当我查看我的 Hadoop 屏幕时,我看到如下统计信息

Average Map Time    5mins, 56sec
Average Shuffle Time    6mins, 27sec
Average Merge Time  4mins, 25sec
Average Reduce Time 3mins, 51sec

据我了解,MapReduce 的工作原理类似于

  1. 映射步骤:使用“映射器”机器对每一行输入应用一些转换,为每一行输出一个键值对。
  2. Shuffle 步骤:获取这些键值对,并将具有相同键的对组合在一起,将具有相同键的对分配给同一台“reducer”机器。
  3. 减少步骤:对具有相同键的所有对应用“减少”转换,为每个组生成一个结果。

所以我想我知道“map”、“shuffle”和“reduce”是什么。但什么是“合并”?

最佳答案

打乱和合并重叠:

指标被列为“shuffle 结束和 reduce 开始之间的时间增量”

您可以在这些补丁说明中看到“洗牌和合并阶段在实践中是重叠的,但实际上我们在这里寻找的是即使在数据已洗牌到 reducer 之后花费过多时间进行合并。”

所以这些步骤在流程中一起发生,但它们只是计算所需的额外合并时间的指标。

来源: https://issues.apache.org/jira/browse/MAPREDUCE-5059

关于hadoop - "merge"在 MapReduce 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30985353/

相关文章:

shell - 如何自动将zipfile从本地文件系统复制到HDFS

python - 如何找到当前 spark 上下文中加载的所有文本文件?

java - Hadoop如何在多个数据节点之间分配数据和Mapreduce任务

eclipse - 为什么 Eclipse 的 Hadoop 插件会忽略我对程序所做的更改?

hadoop - Hadoop 的数值食谱

hadoop - LazyOutputFormat(Hadoop API 2.x)中出现错误

java - Map 中的 Pair 类减少抛出错误

javascript - 通过组 CouchDB View 获取最新项目

cocoa - Swift 1.2 不愿意我的 NSString "+"map.reduce

hadoop - 我们可以在 mapreduce 中使用 log4j 吗?