Hadoop Map-Reduce:关于状态的信息:mappers:80%,reducers:20%
Hadoop Map-Reduce: what you can tell about a state: mappers: 80%, reducers: 20%
在采访中我被问到一个问题:关于状态你能说些什么:映射器:80%,缩减器:20%?
我的理解是,进入那种状态是不可能的。因为在 reducer 开始工作之前,所有映射器都应该完成 运行:收集所有键值对并按键分组。
我说的对吗?
Reducers 占 20% 意味着后台线程已开始将数据从 mapper 输出位置复制到 reducer 输入位置。这就是为什么在映射器输出达到 100% 之前,reducers 进度显示为 20%。
before reducers can start their job, all mappers should finished
running
没有。
映射器完成后开始随机播放。就像您的示例中的 80% map 和 20% reduce 表示随机播放阶段正在进行中。
reduce阶段有3个sub-phases:
- 随机播放
- 排序
- 减少
这 是 可能的,因为减速器处于 shuffle 阶段,所以你的答案不正确。在地图完成之前不可能达到reduce超过33%的状态:
粗略地说,将洗牌、排序和缩减,每个视为1 /3 的减少阶段。排序和减少不能在映射阶段完成之前开始,但洗牌(复制数据)可以。
因此,在 map 阶段完成之前,不能完成超过 1/3 (33%) 的 reduce 阶段。
您可以通过设置称为 reduce slowstart 的参数值来设置映射器完成减速器将开始复制的百分比。
即使您的 Mappers 尚未完成,Reducers 也可以开始工作。实际上,这就是为什么你看到 reducer 状态甚至在映射器为 100% 之前就达到了 20%,但是当映射器尚未完成时,reducer 状态可以为 0%-33%。希望对你有帮助
在采访中我被问到一个问题:关于状态你能说些什么:映射器:80%,缩减器:20%?
我的理解是,进入那种状态是不可能的。因为在 reducer 开始工作之前,所有映射器都应该完成 运行:收集所有键值对并按键分组。
我说的对吗?
Reducers 占 20% 意味着后台线程已开始将数据从 mapper 输出位置复制到 reducer 输入位置。这就是为什么在映射器输出达到 100% 之前,reducers 进度显示为 20%。
before reducers can start their job, all mappers should finished running
没有。
映射器完成后开始随机播放。就像您的示例中的 80% map 和 20% reduce 表示随机播放阶段正在进行中。
reduce阶段有3个sub-phases:
- 随机播放
- 排序
- 减少
这 是 可能的,因为减速器处于 shuffle 阶段,所以你的答案不正确。在地图完成之前不可能达到reduce超过33%的状态:
粗略地说,将洗牌、排序和缩减,每个视为1 /3 的减少阶段。排序和减少不能在映射阶段完成之前开始,但洗牌(复制数据)可以。 因此,在 map 阶段完成之前,不能完成超过 1/3 (33%) 的 reduce 阶段。
您可以通过设置称为 reduce slowstart 的参数值来设置映射器完成减速器将开始复制的百分比。
即使您的 Mappers 尚未完成,Reducers 也可以开始工作。实际上,这就是为什么你看到 reducer 状态甚至在映射器为 100% 之前就达到了 20%,但是当映射器尚未完成时,reducer 状态可以为 0%-33%。希望对你有帮助