每個Hadoop開發人員都知道Combiner是優化mapreduce的關鍵,但它是可選的。它可以最小化帶寬並提高mapreduce作業性能。在這裏,我的問題是,hadoop默認使用許多功能,如數據局部性問題,但不會使Combiner成爲默認值。爲什麼?這意味着在所有情況下組合器都不值得推薦?當我們不使用組合器?如果我將它作爲默認最新的問題?當我們不使用Mapreduce中的Combiner?
0
A
回答
4
合併器可以用於防止縮減功能是交換和關聯。這是因爲價值在以任意順序洗牌之前在本地結合在一起。
可交換 - 我們處理的操作對值順序已在某種程度上對結果沒有任何影響:
1 + 2 + 3 = 1 + 3 + 2
聯想 - 我們處理對值的業務已在某種程度上對結果沒有任何影響的順序:
(1 + 2)+ 3 = 1 +(2 + 3)
所以這是很好的使用組合器即G。對於sum()
操作,但有些操作不起作用。所以程序員總是有責任決定組合器是否可以用於特定的算法。
0
如果您在工作中設置了組合器,Hadoop將根據這些數據決定,是否運行組合器。
但是,如果您沒有設置組合器,那麼Hadoop將不會運行組合器。
當組合器運行時,它會減小輸出的大小。因此少量數據將在網絡中傳播。
對於組合器和減速之間的差異,檢查下面的鏈接:
http://blog.optimal.io/3-differences-between-a-mapreduce-combiner-and-reducer/
相關問題
- 1. 我們可以在mapreduce中使用log4j嗎?
- 2. 當我們使用列表
- 3. 當我們使用XMl
- 4. 當我們使用android
- 5. 當我們使用Yii RbAC?
- 6. 當我們應該使用SignalR自己託管,當我們不應該?
- 7. 當我們不應該在蜂巢中使用bucketing?
- 8. 當我們提取請求時,爲什麼我們使用Like而不是==?
- 9. 當我們使用xchg時,我們是否需要防護
- 10. 當我們不需要我們的表的主鍵?
- 11. 我們真的需要在MapReduce框架中進行排序嗎?
- 12. 爲什麼我們需要MapReduce中的「地圖」部分?
- 13. 當我們的objÇ
- 14. 當我們應該使用pushScene和replaceScene?
- 15. 當我們使用組列表視圖
- 16. 我們可以在Hadoop Streaming(lang:Python)中級聯多個MapReduce作業
- 17. 我們如何使用xsl:函數中的xsl:當
- 18. 當我們應該使用file.write(...)而不是file.createWriteStream(...)?
- 19. 當我們使用ROLLUP運算符時,爲什麼我們不能使用DISTINCT關鍵字?
- 20. 當在我們的項目中使用隊列時,事件廣播不工作
- 21. 當我們從@ Html.DropdownListfor
- 22. 貓鼬的MapReduce:使用array.some
- 23. 查找使用MapReduce的
- 24. 我在使用Mapreduce的K-Means中遇到麻煩(修改)
- 25. 我可以使用mapreduce查詢CouchDB中的視圖嗎?
- 26. 在MapReduce中使用Hadoop的例外
- 27. 我們不能不使用jerseyclient api來訪問我們的球衣api
- 28. 當我們在輸入html標籤中使用name =「Keys」?
- 29. 當我們應該在可可Touch中使用NSThreads時?
- 30. 當我們在PHP中使用mail()時發生了什麼?