MapReduce-Combiner规约-原理分析
生活随笔
收集整理的這篇文章主要介紹了
MapReduce-Combiner规约-原理分析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
規約Combiner?
每一個 map 都可能會產生大量的本地輸出,Combiner 的作用就是對 map 端的輸出先做一次合并,以減少在 map 和 reduce 節點之間的數據傳輸量,以提高網絡IO 性能,是MapReduce 的一種優化手段之一
combiner 是 MR 程序中 Mapper 和 Reducer 之外的一種組件
combiner 組件的父類就是 Reducer
combiner 和 reducer 的區別在于運行的位置
Combiner 是在每一個 maptask 所在的節點運行
Reducer 是接收全局所有 Mapper 的輸出結果
combiner 的意義就是對每一個 maptask 的輸出進行局部匯總,以減小網絡傳輸量
實現步驟
1. 自定義一個 combiner 繼承 Reducer,重寫 reduce 方法
2. 在 job 中設置 job.setCombinerClass(CustomCombiner.class)
combiner 能夠應用的前提是不能影響最終的業務邏輯,而且,combiner 的輸出 kv 應該跟 reducer 的輸入 kv 類型要對應起來
總結
以上是生活随笔為你收集整理的MapReduce-Combiner规约-原理分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MapReduce-计数器
- 下一篇: MapReduce-流量统计求和-步骤分