我有發出文本(水果名)鍵和一個自定義的複合值城市映射器:計數。我想在複合值到達減速器之前通過計數對複合值進行排序,以便減速器可以快速確定哪個城市的計數最高。Java的MapReduce的排序組合值
的複合值類是WritableComparable的延伸,並且具有用於檢索計數和城市方法。
什麼我減速當前接受:
reducer 1 - oranges:<london:2, chicago:15, charleston:6>
reducer 2 - apples:<charleston:31, london:3, chicago:29>
...
我希望我的減速器收到什麼:
reducer 1 - oranges:<chicago:15, charleston:6, london:2>
reducer 2 - apples:<charleston:31, chicago:29, london:3>
從邏輯上講,我怎麼做到這一點?我讀過幾篇有關Secondary Sorting/Ordering的文章,但他們傾向於關注複合鍵而不是複合值。我的密鑰不需要進一步分區,也不需要進一步分類。
此外,通過複合VALUE不是複合鍵排序!
的可能的複製[hadoop的地圖減少二次分選(http://stackoverflow.com/questions/18395998/hadoop-map-reduce-secondary-sorting) –