日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Map端的聚合操作Combiner

發(fā)布時間:2024/9/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Map端的聚合操作Combiner 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

需求

詞頻統(tǒng)計,假設(shè)有一個文件,統(tǒng)計這個文件詞頻

常見的解決辦法

例如原始文本是:
交給兩個Map去處理,map1處理hello is hello is,map2處理hadoop is hadoop is hadoop,輸出結(jié)果map1為:(hello,1)(is, 1)(hello, 1)(is, 1),map2為(hadoop,1)(is, 1)(hadoop, 1)(is, 1)(hadoop,1)。然后把結(jié)果給shuffle,shuffle按照相同的key(會按照字典順序排序)丟給Reducer中去處理。

問題

map1中有4個Key,map2中有4個Key,一共9個Key。但是在Reducer中一共只輸出了3個Key。如果map1中處理1000萬個key,第二個處理1000萬個Key,所有的數(shù)據(jù)都要經(jīng)過網(wǎng)絡(luò)傳輸,性能一定會受影響。

解決辦法

如果在map端再做一次聚合,是不是就會提高性能了。這個聚合的操作和我們的Reduce邏輯完全一樣。

這個Map端的聚合操作就叫做Combiner。
這樣能很大程度上節(jié)省網(wǎng)絡(luò)開銷。

實現(xiàn)方法


跟Reducer的方法是一樣的,直接添加上Reducer就可以了。

Combiner的優(yōu)點

能減少IO,提升作業(yè)的執(zhí)行性能

Combiner的局限性

在求平均數(shù)的場景下,會出現(xiàn)錯誤的結(jié)果。

總結(jié)

以上是生活随笔為你收集整理的Map端的聚合操作Combiner的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。