溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MapReduce的實現(xiàn)目標及核心關(guān)注點

發(fā)布時間:2020-06-08 16:50:11 來源:網(wǎng)絡 閱讀:139 作者:clouddevops 欄目:大數(shù)據(jù)

實現(xiàn)目標及核心關(guān)注點

MapReduce接口可能有多種不同的實現(xiàn)方式,需根據(jù)具體的計算環(huán)境來選擇

以Google的常用計算環(huán)境為例

1.機器配置 Linux dual-process x86 2-4GB Memory

2.網(wǎng)絡硬件 100/1000 MB/s, 平均整體二分帶寬少很多

3.集群 由數(shù)百、數(shù)千臺機器組成,機器故障很常見

4.存儲由連接到每個機器的廉價IDE磁盤提供,它們內(nèi)部開發(fā)的分布式文件系統(tǒng)用于管理這些磁盤上的數(shù)據(jù)。文件系統(tǒng)使用副本在不可靠的硬件之上提供可用性和可靠性

5.用戶提交Job到調(diào)度系統(tǒng),每個Job由一組Tasks組成,并由調(diào)度器將每個Task映射到機器中一組可用計算機上執(zhí)行

MapReduce實現(xiàn)流程

Map調(diào)用被分布在多臺機器,輸入數(shù)據(jù)被自動劃分為M個分割,輸入分割之間沒有交互,可以在不同機器上并行處理。使用分區(qū)函數(shù)(e.g. hash(key) mod R),將中間鍵空間劃分為R個片段分發(fā)給Reduce并行調(diào)用,分區(qū)函數(shù)和分區(qū)數(shù)由用戶指定。用戶調(diào)用MapReduce函數(shù)的系列操作如下

1.Split Input FIles 將輸入文件按指定大小S(16~64MB,用戶通過可選參數(shù)指定)劃分為M個分割文件,然后在集群中啟動多個副本程序

2.Assign Tasks Master挑選空閑Worker節(jié)點并為其分配一個map task或reduce task

3.Parses K/V 被分配map task的worker讀取相關(guān)分割的內(nèi)容,從輸入內(nèi)容中解析鍵/值對并生成中間鍵/值對緩存于內(nèi)存中

4.Written to Local Disk 緩存的中間鍵/值對,通過分區(qū)函數(shù)劃分為R個區(qū)域,定期寫到本地磁盤并將其相對位置返回給Master,Master再將這些位置信息傳給Worker

5.RPC Read and Sort 當Master將位置信息通知到Reduce Worker, Reduce Worker使用遠程過程調(diào)用從Map Worker的磁盤讀入緩存數(shù)據(jù)。當Reduce Worker讀入所有的中間數(shù)據(jù)按key排序,如果中間數(shù)據(jù)過大不適合在內(nèi)存運算,可考慮使用外部排序

6.Iterates and Appended Reduce Worker對已排序的中間數(shù)據(jù)進行迭代,對于每一個唯一的中間鍵,它將與之對應的中間值集傳遞給用戶的Reduce函數(shù)。將Reduce函數(shù)的輸出Append到這個reduce分區(qū)的最終輸出文件

7.Completed 完成所有map和reduce任務后master喚醒用戶程序

--- edit by 云時代的運維開發(fā)(clouddevops)

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI