CGFT考試科目中是有《大數據技術原理及應用》,今天-就跟著小編一起看看MapReduce的具體執行過程!看看你是不是掌握了呢?沒有的話,那更要看看了!
對于WordCount程序任務,整個MapReduce過程實際的執行順序如下。

①執行WordCount的用戶程序(采用MapReduce編寫),會被系統分發部署到集群中的多臺機器上,其中一個機器作為Master,負責協調調度作業的執行,其余機需法,可以執行Map或Reduce任務。
②系統分配一部分Worker執行Map任務,一部分Worker執行Reduce任務;MapReduce將輸入文件切分成M個分片,Master將M個分片分給處于空閑狀態的N個Worker來處理;
③執行Map任務的Worker讀取輸入數據,執行Map操作,生成一系列《key,value》形式的中間結果,并將中間結果保存在內存的緩沖區中。
④緩沖區中的中間結果會被定期刷寫到本地磁盤上,并被劃分為R個分區,這R個分區會被分發給R個執行Reduce任務的Worker進行處理:Master會記錄這R個分區在磁盤上的存儲位置,并通知R個執行Reduce任務的Worker來“領取”屬于自己處理的那些分區的數據。
⑤執行Reduce任務的Worker收到Master的通知后,就到相應的Map機器上“領回”屬于自己處理的分區,需要注意的是,正如之前在Shuffle過程闡述的那樣,可能會有多個Map機器通知某個Reduce機器來領取數據,因此,一個執行Reduce任務的Worker,可能會從多個Map機器上領取數據。當位于所有Map機器上的、屬于自己處理的數據,都已經領取回來以后,這個執行Reduce任務的Worker,會對領取到的鍵值對進行排序(如果內存中放不下需要用到外部排序),使得具有相同key的鍵值對聚集在一起,然后就可以開始執行具體的Reduce操作了。
⑥執行Reduce任務的Worker通歷中間數據,對每一個*key,執行Reduce函數,結果寫入到輸出文件中;執行完畢后,喚醒用戶程序,返回結果。
					
          