教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

Python大數(shù)據(jù)培訓(xùn):MapTask工作原理

更新時(shí)間:2022年05月26日10時(shí)15分 來(lái)源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

  今天的Python大數(shù)據(jù)培訓(xùn)課程我們講一下MapTask工作原理,MapTask作為MapReduce工作流程的前半部分,它主要經(jīng)歷了5個(gè)階段,分別是Read階段、Map階段、Collect階段、Spill階段和Combine階段,如圖4-7所示。

1653530756411_MapTask工作原理.jpg

  圖4-7MapTask工作原理

  關(guān)于MapTask這5個(gè)階段的相關(guān)介紹如下:

 ?。?)Read階段:MapTask通過(guò)用戶編寫的RecordReader,從輸入的InputSplit中解析出一個(gè)個(gè)key/value。

 ?。?)Map階段:將解析出的key/value交給用戶編寫的map()函數(shù)處理,并產(chǎn)生一系列新的key/value。

 ?。?)Collect階段:在用戶編寫的map()函數(shù)中,數(shù)據(jù)處理完成后,一般會(huì)調(diào)用outputCollector.collect()輸出結(jié)果,在該函數(shù)內(nèi)部,它會(huì)將生成的key/value分片(通過(guò)調(diào)用partitioner),并寫入一個(gè)環(huán)形內(nèi)存緩沖區(qū)中。

  (4)Spill階段:即“溢寫”,當(dāng)環(huán)形緩沖區(qū)滿后,MapReduce會(huì)將數(shù)據(jù)寫到本地磁盤上,生成一個(gè)臨時(shí)文件。需要注意的是,將數(shù)據(jù)寫入本地磁盤前,先要對(duì)數(shù)據(jù)進(jìn)行一次本地排序,并在必要時(shí)對(duì)數(shù)據(jù)進(jìn)行合并、壓縮等操作。

 ?。?)Combine階段:當(dāng)所有數(shù)據(jù)處理完成以后,MapTask會(huì)對(duì)所有臨時(shí)文件進(jìn)行一次合并,以確保最終只會(huì)生成一個(gè)數(shù)據(jù)文件。

0 分享到:
和我們?cè)诰€交談!