2013-02-22 30 views

回答

4

爲了達到使用Hadoop的內置功能減速器輸入值的排序,你可以這樣做:

1.Modify地圖輸出鍵 - 附加地圖輸出鍵與相應的value.Emit該組合鍵和值因爲hadoop默認使用整個鍵進行排序,所以map輸出記錄將按(舊鍵+值)排序。

2.雖然排序在第1步完成,但您已經在流程中操作了映射輸出鍵。Hadoop默認根據鍵進行分區和分組。

3.由於您修改了原始密鑰需要照顧修改分區器和分組比較器以基於舊密鑰工作,即僅複合密鑰的第一部分。 分區程序 - 決定哪些鍵值對落在相同的Reducer實例中
GroupComparator - 決定登陸到Reducer中的哪些鍵 - 值對將進入相同的reduce方法調用。

4.最後(顯然)您需要提取減速器中輸入鍵的第一部分以獲得舊鍵。

如果您需要更多(和更好的)答案,轉向Hadoop的權威指南第三版 - >第8章 - >分類 - >輔助排序

+0

的確,David Gruzman在這個http://pkghosh.wordpress.com/2011/04/13/map-reduce-secondary-sort-does-it-all/上引用了一個很好的例子。 – 2014-07-16 11:19:39

相關問題