MapReduce自定义二次排序流程
生活随笔
收集整理的這篇文章主要介紹了
MapReduce自定义二次排序流程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
每一條記錄開始是進入到map函數進行處理,處理完了之后立馬就入自定義分區(qū)函數中對其進行分區(qū),當所有輸入數據經過map函數和分區(qū)函數處理完之后,就調用自定義二次排序函數對其進行排序。
MapReduce處理數據的大概簡單流程:首先,MapReduce框架通過getSplit方法實現對原始文件的切片之后,每一個切片對應著一個map task,inputSplit輸入到Map函數進行處理,中間結果經過環(huán)形緩沖區(qū)的 排序,然后分區(qū)、自定義二次排序(如果有的話)和合并,再通過shuffle操作將數據傳輸到reduce task端,reduce端也存在著緩沖區(qū),數據也會在緩沖區(qū)和磁盤中進行合并排序等操作,然后對數據按照Key值進行分組,然后沒處理完一個分組之后就 會去調用一次reduce函數,最終輸出結果。
?
?
自定義比較器決定了我們二次排序的結果。自定義比較器需要繼承WritableComparator類,并且重寫compare方法實現自己的比較策略。
轉載于:https://www.cnblogs.com/Mandylover/p/5229666.html
總結
以上是生活随笔為你收集整理的MapReduce自定义二次排序流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 观感2
- 下一篇: 31.绿豆蛙的归宿(拓扑排序)