作為CGFT金融科技分析師,對科技也有了解,也要學習一定的大數(shù)據(jù),那在學習中對WordCount程序任務了解多少呢?給你說說一下MapReduce過程實際的執(zhí)行!

執(zhí)行WordCount的用戶程序(采用MapReduce編寫),會被系統(tǒng)分發(fā)部署到集群中的多臺機器上,其中一個機器作為Master,負責協(xié)調調度作業(yè)的執(zhí)行,其余機器作為Worker,可以執(zhí)行Map Reduce 任務。

系統(tǒng)分配一部分Worker執(zhí)行Map任務,一部分Worker執(zhí)行Reduce任務;MapReduce將輸入文件切分成M個分片:MasterM個分片分給處于空閑狀態(tài)的TVWorker來處理;

CFGFT金融科技分析師

執(zhí)行Map任務的Worker讀取輸入數(shù)據(jù),執(zhí)行Map操作,生成一系列<key,value>形式的中間結果,并將中間結果保存在內存的緩沖區(qū)中。

緩沖區(qū)中的中間結果會被定期刷寫到本地磁盤上,并被劃分為個分區(qū),這7?個分區(qū)會被分發(fā)給R個執(zhí)行Reduce任務的Worker進行處理;Master會記錄這R個分區(qū)在磁盤上的存儲位置,并通知R個執(zhí)行Reduce任務的Worker領取屬于自己處理的那些分區(qū)的數(shù)據(jù)。

執(zhí)行Reduce任務的Worker收到Master的通知后,就到相應的Map機器上領回屬于自己處理的分區(qū),需要注意的是,正如之前在Shuffle過程闡述的那樣,可能會有多個Map機器通知某個Reduce機器來領取數(shù)據(jù),因此,一個執(zhí)行Reduce任務的Worker,可能會從多個Map機器上領取數(shù)據(jù)。當位于所有Map機器上的、屬于自己處理的數(shù)據(jù),都已經(jīng)領取回來以后,這個執(zhí)行Reduce任務的Worker,會對領取到的鍵值對進行排序(如果內存中放不下需要用到外部排序),使得具有相同key的鍵值對聚集在一起,然后就可以開始執(zhí)行具體的Reduce操作了。

執(zhí)行Reduce任務的Worker遍歷中間數(shù)據(jù),對每一個* key,執(zhí)行Reduce函數(shù),結果寫人到輸出文件中;執(zhí)行完畢后,喚醒用戶程序,返回結果。

?