MapReduce是一種編程模型,用于大規模數據集(大于1TB)的并行運算。概念"Map(映射)"和"Reduce(歸約)",是它們的主要思想,都是從函數式編程語言里借來的,還有從矢量編程語言里借來的特性。
它極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統上。 當前的軟件實現是指定一個Map(映射)函數,用來把一組鍵值對映射成一組新的鍵值對,指定并發的Reduce(歸約)函數,用來保證所有映射的鍵值對中的每一個共享相同的鍵組。
工作原理(推薦學習:Java視頻教程)
MapReduce執行流程
上圖是論文里給出的流程圖。一切都是從最上方的user program開始的,user program鏈接了MapReduce庫,實現了最基本的Map函數和Reduce函數。圖中執行的順序都用數字標記了。
1.MapReduce庫先把user program的輸入文件劃分為M份(M為用戶定義),每一份通常有16MB到64MB,如圖左方所示分成了split0~4;然后使用fork將用戶進程拷貝到集群內其它機器上。
2.user program的副本中有一個稱為master,其余稱為worker,master是負責調度的,為空閑worker分配作業(Map作業或者Reduce作業),worker的數量也是可以由用戶指定的。
3.被分配了Map作業的worker,開始讀取對應分片的輸入數據,Map作業數量是由M決定的,和split一一對應;Map作業從輸入數據中抽取出鍵值對,每一個鍵值對都作為參數傳遞給map函數,map函數產生的中間鍵值對被緩存在內存中。
4.緩存的中間鍵值對會被定期寫入本地磁盤,而且被分為R個區,R的大小是由用戶定義的,將來每個區會對應一個Reduce作業;這些中間鍵值對的位置會被通報給master,master負責將信息轉發給Reduce worker。
5.master通知分配了Reduce作業的worker它負責的分區在什么位置(肯定不止一個地方,每個Map作業產生的中間鍵值對都可能映射到所有R個不同分區),當Reduce worker把所有它負責的中間鍵值對都讀過來后,先對它們進行排序,使得相同鍵的鍵值對聚集在一起。因為不同的鍵可能會映射到同一個分區也就是同一個Reduce作業(誰讓分區少呢),所以排序是必須的。
6.reduce worker遍歷排序后的中間鍵值對,對于每個唯一的鍵,都將鍵與關聯的值傳遞給reduce函數,reduce函數產生的輸出會添加到這個分區的輸出文件中。
7.當所有的Map和Reduce作業都完成了,master喚醒正版的user program,MapReduce函數調用返回user program的代碼。
所有執行完畢后,MapReduce輸出放在了R個分區的輸出文件中(分別對應一個Reduce作業)。用戶通常并不需要合并這R個文件,而是將其作為輸入交給另一個MapReduce程序處理。整個過程中,輸入數據是來自底層分布式文件系統(GFS)的,中間數據是放在本地文件系統的,最終輸出數據是寫入底層分布式文件系統(GFS)的。而且我們要注意Map/Reduce作業和map/reduce函數的區別:Map作業處理一個輸入數據的分片,可能需要調用多次map函數來處理每個輸入鍵值對;Reduce作業處理一個分區的中間鍵值對,期間要對每個不同的鍵調用一次reduce函數,Reduce作業最終也對應一個輸出文件。
以上就是MapReduce原理介紹,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注本站行業資訊頻道。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
什么是支付手段?支付手段是指貨幣用于清償債務、支付賦稅、租金、工資等的職能。這一職能是為適應商品生產和商品交換發展的需要而發展起來的。由于商品生產和商品交換在時空上的差異,就產生了商品使用價值的讓渡與商品價值的實現在時間上分離開來的客觀必然性。某些商品消費者在需要購買時沒有貨幣,只有到將來某一時間才有支付能力,同時,某些商品生產者又急需出售其商品,于是就產生了賒購賒銷。支付手段是指在交易過程中交易...
什么是大公國家主權信用評級?大公國家主權信用評級是民族信用評級機構大公國際資信評估有限公司發布的國家主權信用評級方法,這是中國首部國家主權信用評級方法,將對中國參與新型國際信用評級體系建設產生重要作用。大公國家主權信用評級是按照一定的方法和程序,對中央政府按照契約規定在未來償還其商業性金融債務的意愿和能力的評估,評級結果所反映的是作為債務人的中央政府對其債務違約的相對可能性,評級的基礎是一個國家的...
每股收益多少是正常?(1)每股收益,在企業正常運營的情況下,沒有出現重大虧損或違法違規的情況,每股收益為0.3元左右,市盈率在15倍附近,相對比較正常。(2)判斷每股收益是否正常,是沒有具體的數值標準,因為參照標準不同,會不同。每股收益的計算公式(1)傳統計算公式:每股收益=(本期毛利潤-優先股股利)/期末總股本。(2)每股收益=歸屬于普通股股東的當期凈利潤/當期發行在外普通股的加權平均數每股收益...