排序經常會用,但是怎么在大數據中,以Map,Reduce這種形式來進行實現了?
首先你要明確目標對象,對誰進行排序,如果是自定義的對象,需要實現其CompareTo方法,因為這個是對象之間比較大小的方法。
另外你需要設計排序策略,特殊情況,正常情況,編程的時候,應該先寫特殊情況,最后寫正常情況,這樣的話,邏輯更加清晰。
如何設計呢?
首先按照正常邏輯寫好Map和Reduce程序,然后輸出,最后得到的是一些文本,
在寫一個Map,Reduce程序在寫,進行排序。思想也是一樣的,偏移量為key,(剛學的時候,不知道什么是偏移量,后來才明白,是字段的偏移量,比如第一行,開始偏移量為1,第二行,偏移量就是11,為什么,因為,第一行有10個字符,占據了10位)
在所有的mapreduce程序當中k1,v1,k2,v2,k3,v3中的k1一點用都沒有,至于其他的k2和v2,他們可以自己進行設計,這些都只是輸出,可以是對象,也可以是數值,包括v3,也可以是NULLwriteable等等之類的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。