我對Hadoop的實現感到困惑。Hadoop中的Mapper和Reducer
我注意到,當我運行帶有多個映射器和reducer的Hadoop MapReduce作業時,我會得到很多part-xxxxx文件。同時,確實只有一個關鍵字出現在其中。
因此,我想知道MapReduce是如何工作的,只有一個鍵只能輸出到一個輸出文件?
在此先感謝。
我對Hadoop的實現感到困惑。Hadoop中的Mapper和Reducer
我注意到,當我運行帶有多個映射器和reducer的Hadoop MapReduce作業時,我會得到很多part-xxxxx文件。同時,確實只有一個關鍵字出現在其中。
因此,我想知道MapReduce是如何工作的,只有一個鍵只能輸出到一個輸出文件?
在此先感謝。
MapReduce進程中的shuffle步驟負責確保所有記錄具有相同的密鑰,並最終在同一個reduce任務中。有關MapReduce數據流的描述,請參閱this Yahoo tutorial。被稱爲Partition & Shuffle的部分指出:
每個map任務可能會向任何分區發出(key,value)對;無論哪個映射器是其來源,相同鍵的所有值總是一起減少。
洗牌
輸入到減速機是映射器的排序後輸出。在這個階段,框架通過HTTP獲取所有映射器輸出的相關分區。
排序
該框架組減速器輸入由密鑰(因爲不同的映射器可以具有輸出相同的密鑰)在這個階段。
洗牌和分揀階段同時發生;當地圖輸出被取出時,它們被合併。
我得到這個從這裏
https://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html
有它看看我希望這將有所幫助