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



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

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

我在联合收割机阶段找不到任何类似的配置。最终,我将我的作业分为两个部分,联合阶段充当reducer,我最初的reduce传递给作业#2(mapper2只传递数据,不修改数据)。

我想知道,有没有一种方法我错过了在合并前配置100%地图完成?谢谢

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

Tom Whites的书中有一个更详细的定义:"Hadoop权威指南":

http://books.google.com/books?id=Nff49D7vnJcC&pg=PA178&lpg=PA178&dq=hadoop+组合器+溢出&source=bl&ots=IiesWqctTu&sig=V5b3Z2EVWp5JzIvc_Fzv1-AJerI&hl=en&sa=X&ei=QUJwT9XBCOna0QGzpnlBg&ved=0CFMQ6AEwAw#v=一页&q=hadoop%20组合器%20溢出&f=错误

因此,您的合并器可能会在地图完成之前运行

相关内容

  • 没有找到相关文章

最新更新