gpt4 book ai didi

hadoop - MapReduce 要求所有映射器在合并阶段之前完成

转载 作者:可可西里 更新时间:2023-11-01 15:41:33 26 4
gpt4 key购买 nike

我最近不得不运行一项作业,要求所有映射器在将结果传递到组合阶段之前完成(由于处理文件的结构方式)。通过配置以下内容,reducer 可以使用此功能 -

// force 100% of the mappers to conclude before reducers start
job.set("mapred.reduce.slowstart.completed.maps", "1.0");

我找不到合并阶段的任何类似配置。最终,我将我的工作分成了 2 个部分,组合阶段充当了 reducer,而我的原始 reduce 传递给了作业 #2(mapper2 只是传递了数据而没有修改它)。

我想知道 - 有没有一种方法我错过了在合并之前配置 100% map 完成?谢谢。

最佳答案

没有办法控制这一点 - 组合器可能会或可能不会针对任何给定的 map 实例运行,事实上,组合器可能会针对 map 数据的各种溢出运行多次。

在 Tom Whites 的书中有更详细的定义:“Hadoop 权威指南”:

http://books.google.com/books?id=Nff49D7vnJcC&pg=PA178&lpg=PA178&dq=hadoop+combiner+spill&source=bl&ots=IiesWqctTu&sig=V5b3Z2EVWp5JzIvc_Fzv1-AJerI&hl=en&sa=X&ei=QUJwT9XBCOna0QGOzpnlBg&ved=0CFMQ6AEwAw#v=onepage&q=hadoop%20combiner%20spill&f=false

因此您的组合器可能会在您的 map 完成之前运行

关于hadoop - MapReduce 要求所有映射器在合并阶段之前完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9868212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com