MapReduce規約淺談

MapReduce階段的kv變化

MapReduce是通過inputformat類讀取文件產生K1,V1,map階段讀取數據,產生K2,V2;而Reduce階段通過拉取map階段的數據進行處理產生新的K3,V3

在map階段讀取數據產生K2,V2之後,我們可以通過使用combiner規約來將map階段的k2進行合併,V2生成集合,也就是從而減少生成文件的大小,減少reduce讀取map階段文件的網絡傳輸。也就是本該在reduce階段進行相同key合併,value形成新的集合的這個過程在map階段通過使用規約提前完成了
在這裏插入圖片描述

注意

我們如果不使用規約(combiner),所有的結果都要在reduce階段完成,效率就會相對低下。使用combiner的話,就會在map端做本地聚合,提升效率

combiner是在每一個maptask所在的節點運行,Reducer是接收全局所有Mapper的輸出結果

規約的好處

通過規約,可以減少map最終的數據量,也就減少傳輸到reduce的數據量,減少網絡帶寬

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章