MapReduce計算框架高級特性程序運(yùn)行并發(fā)度

2019/2/19 星期二

MapReduce計算框架高級特性程序運(yùn)行并發(fā)度

成都創(chuàng)新互聯(lián)專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、城中網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、商城網(wǎng)站定制開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為城中等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

所謂的并發(fā)度,就是在MapReduce執(zhí)行程序的過程中有多少個map task進(jìn)程和reduce task進(jìn)程,來一起完成程序的處理。

MapReduce就是把業(yè)務(wù)處理邏輯變成分布式來處理。

reduce task 數(shù)量的決定機(jī)制 //全局的聚合操作 由業(yè)務(wù)場景決定
1、業(yè)務(wù)邏輯需要
2、數(shù)據(jù)量大小
設(shè)置方法:
job.setNumReduceTasks(5)

//reduce task的數(shù)量不能夠任意的指定,比如:我們在一大堆的英文文件中,我們要去統(tǒng)計有多少個單詞,這個時候reduce task在全局 程序執(zhí)行的過程中只能有1個,為什么呢?因為:需要讓所有的map task 把所有的結(jié)果給到一個reduce task 這樣reduce task 就會把所有的結(jié)果統(tǒng)計出來。在這種情況下reduce task就沒辦法用多個。
比如:在wordcount中,我們統(tǒng)計每一個單詞出現(xiàn)的總次數(shù),在這種情況下,reduce task就 可以由任意多個。因為,maptask處理的結(jié)果經(jīng)過shuffle階段之后,相同的單詞只會出現(xiàn)在同一個reduce task中。我們可能會得到5個文件,但這5個文件中統(tǒng)計的單詞數(shù)量是全局唯一的。

map task 數(shù)量的決定機(jī)制:
由于map task 之間沒有協(xié)作關(guān)系,每一個map task 都是各自為政,在map task 的處理中沒法做“全局”性的聚合操作,所以map task 的數(shù)量完全取決于所處理的數(shù)據(jù)量的大小

決定機(jī)制:
對待處理數(shù)據(jù)進(jìn)行“切片”
每一個切片分配一個map task 來處理

Mapreduce 框架中默認(rèn)的切片機(jī)制:
TextInputFormat.getSplits()繼承自FileInputFormat.getSplits()

數(shù)據(jù)切片的思考
1:定義一個切片大?。嚎梢酝ㄟ^參數(shù)來調(diào)節(jié),默認(rèn)情況下等于“hdfs 中設(shè)置的blocksize”,通常是128M //一定程度上會減少網(wǎng)絡(luò)傳輸數(shù)據(jù),但并不是絕對的。
2:獲取輸入數(shù)據(jù)目錄下所有待處理文件List
3:遍歷文件List,逐個逐個文件進(jìn)行切片
for(file:List)
對file 從0 偏移量開始切,每到128M 就構(gòu)成一個切片,比如a.txt(200M),就會被切成兩個切片: a.txt: 0-128M, a.txt :128M-256M 再比如b.txt(80M),就會切成一個切片, b.txt :0-80M

如果要處理的數(shù)據(jù)是大量的小文件,使用上述這種默認(rèn)切片機(jī)制,就會導(dǎo)致大量的切片,從而maptask 進(jìn)程數(shù)特別多,但是每一個切片又非常小,每個maptask 的處理數(shù)據(jù)量就很小,從而,整體的效率會很低。通用解決方案:就是將多個小文件劃分成一個切片;實現(xiàn)辦法就是自定義一個Inputformat 子類重寫里面的getSplits 方法;
Mapreduce 框架中自帶了一個用于此場景的Inputformat 實現(xiàn)類:CombineFileInputformat

當(dāng)前題目:MapReduce計算框架高級特性程序運(yùn)行并發(fā)度
文章URL:http://bm7419.com/article26/geigjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、建站公司微信公眾號、網(wǎng)站營銷品牌網(wǎng)站建設(shè)、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作