Hadoop Map-Reduce:你可以告诉你一个州:地图:80%,减少:20%

时间:2017-01-12 17:27:55

标签: hadoop mapreduce hadoop2

在接受采访时我被问到一个问题:关于一个州你能说些什么:地图:80%,减少者:20%?

我的理解是,进入那个州是不可能的。因为在reducers可以开始工作之前,所有映射器都应该运行完毕:收集所有键值对并按键对它们进行分组。

我说错了吗?

4 个答案:

答案 0 :(得分:3)

20%的减速器意味着后台线程已开始将数据从映射器输出位置复制到减速器输入位置。这就是为什么在映射器输出达到100%之前,减速器进度显示为20%。

答案 1 :(得分:2)

  在减速器开始工作之前,所有映射器都应该完成   运行

NO。

随着映射器的完成,随机启动...就像你的例子80%map和20%reduce意味着shuffle阶段正在进行中。

减少阶段有三个子阶段:

  1. 洗牌
  2. 排序
  3. 减少

答案 2 :(得分:1)

可能,因为reducer处于 shuffle 阶段,因此您的答案不正确。在地图完成之前,不可能达到减少超过33%的状态:

粗略地说,考虑 shuffling 排序减少,每个都是减少阶段的1/3。在映射阶段完成之前无法启动排序和缩减,但是混洗(复制数据)可以。 因此,在地图阶段完成之前,您不能有超过1/3(33%)的减少阶段完成。

您可以通过设置名为reduce slowstart的参数值来设置映射器完成缩减器的百分比将开始复制。

答案 3 :(得分:0)

即使您的Mappers尚未完成,减速器也可以开始工作。实际上,这就是为什么你看到甚至在映射器为100%之前减速器状态为20%,但是当映射器还没有完成时,减速器状态可以是0%-33%。我希望它有所帮助