簡體   English   中英

在Hadoop MapReduce作業中鏈接多減少器

[英]Chaining Multi-Reducers in a Hadoop MapReduce job

現在我有一個4階段MapReduce作業如下:

Input-> Map1 -> Reduce1 -> Reducer2 -> Reduce3 -> Reduce4 -> Output

我注意到Hadoop中有ChainMapper類,可以將多個映射器鏈接到一個大映射器,並在映射階段之間保存磁盤I / O成本。 還有一個ChainReducer類,但它不是真正的“減速器”。 它只能支持以下工作:

[Map+/ Reduce Map*]

我知道我可以為我的任務設置四個MR作業,並使用默認的映射器來完成最后三個作業。 但是這將耗費大量磁盤I / O,因為reducers應該將結果寫入磁盤,讓以下映射器訪問它。 是否還有其他Hadoop內置功能可以將我的Reducer連接起來以降低I / O成本?

我正在使用Hadoop 1.0.4。

我不認為你可以將減速器的o / p 直接給予另一個減速器。 我會為此而去:

Input-> Map1 -> Reduce1 -> 
        Identity mapper -> Reducer2 -> 
                Identity mapper -> Reduce3 -> 
                         Identity mapper -> Reduce4 -> Output

在Hadoop的2.X系列,內部可以用減速后ChainMapper和鏈映射器減速前鏈映射器ChainReducer

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM