【问题标题】:When does shuffle start in Hadoop什么时候在 Hadoop 中开始随机播放
【发布时间】:2014-12-19 00:58:04
【问题描述】:

我对洗牌何时开始有疑问。

假设我有 2 个映射器和 1 个减速器。每个映射器都会生成输出 map1 和 map2。这个map1和map2分别存放在各自datanode的临时磁盘中。

现在 reducer 应该等待 map1 和 map2 的输出吗?换句话说,洗牌什么时候开始? map1 完成后,还是必须等待 map2 完成?

我正在收听 reducer 的 shuffle 流量,我找不到任何流量,但控制台输出显示已经完成了 70%(大约)的 reduce。

14/12/18 17:45:55 INFO mapred.JobClient:  map 97% reduce 22%
14/12/18 17:45:58 INFO mapred.JobClient:  map 98% reduce 22%
14/12/18 17:45:59 INFO mapred.JobClient:  map 99% reduce 22%
14/12/18 17:46:07 INFO mapred.JobClient:  map 100% reduce 22%
14/12/18 17:46:12 INFO mapred.JobClient:  map 100% reduce 67%
14/12/18 17:46:15 INFO mapred.JobClient:  map 100% reduce 71%

我看到在此之后会出现混乱的交通流量。

我在这里有点困惑。这大约 70% 的减速机功是多少? !

谢谢

【问题讨论】:

标签: hadoop mapreduce hdfs cloudera-cdh


【解决方案1】:

在您的 reducer 中...首先 33% 是复制阶段,接下来 33% 是 shuffle 和 sort 阶段,最后 33% 是您的实际 reduce 操作。

我将尝试解释一个简单的流程: map 任务完成后,map 任务的输出将被复制到假设发生 reduce 任务的地方。 Map 和 Reduce 不会发生在同一台机器上。 当一些映射器完成时,您会注意到减少阶段的一些增量,甚至在完整映射阶段发生之前。这是被复制的那些完成的映射任务输出的数据。现在可以将已完成的映射任务复制到必然会发生reduce任务的地方。洗牌仅在完整映射阶段结束后才开始。这是因为要对输出键进行排序。在您拥有之前无法排序完整的键空间..对..??

【讨论】:

  • 谢谢。什么是 33% 复制阶段?复制到哪里?只有在所有映射完成后才开始洗牌?
  • “复制阶段”是指将输出数据从映射器移动到适当的减速器。根据您的配置,这将在映射器接近完成时开始。然后在映射器完成后开始随机排序。
  • 我在复制和随机播放阶段之间有点困惑。 @Fraz 我认为洗牌阶段只不过是将数据从映射器移动到减速器。如果是这样,最初的 33% 是多少?
  • 否...复制阶段是数据从映射节点移动到减少节点所在的位置...在您的映射器中...您指定输入键、值和输出键、值...此输出键值被复制到reduce节点。之后,数据根据map输出键进行混洗和排序。这样所有相同的键都被分组在一起。这是reduce阶段的输入
【解决方案2】:

实际上排序发生在 map 和 reduce 方面。在Definitive guide中有明确说明

【讨论】:

    【解决方案3】:

    随机播放和排序阶段一起称为“复制”阶段。排序在 RAM 中完成。如果由于内存不足而需要外部排序,则会发生合并排序。所以我们写排序/合并。

    实际上,每个 Map 任务都有 3 个阶段:Map、Partitioning、Sort/Merge。每个 Reduce 任务有 3 个阶段:Shuffle、Sort/Merge、Reduce。

    在 Hadoop 中,shuffle 阶段在生成所有 map 任务输出的 5% 时开始。在这种策略中,虽然 shuffle 阶段开始得更早,以减少作业执行时间,但它会导致重复合并和 reduce 侧的更多磁盘访问,这再次导致作业执行时间延长。

    【讨论】:

      猜你喜欢
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-11
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-06
      相关资源
      最近更新 更多