欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何進(jìn)行MapReduce中的JobSplit源碼分析

這篇文章將為大家詳細(xì)講解有關(guān)如何進(jìn)行MapReduce中的JobSplit源碼分析,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作與策劃設(shè)計(jì),沙河口網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:沙河口等地區(qū)。沙河口做網(wǎng)站價(jià)格咨詢:028-86922220

MapReduce源碼分析 - JobSplit

根據(jù)MapRudece的原理,我們從4個(gè)過程去分析MR的源碼:

  • Split階段;

  • MapTask階段;

  • Shuffle階段;

  • ReduceTask階段;

下面首先介紹Split階段的源碼。

如何進(jìn)行MapReduce中的JobSplit源碼分析

Split源碼分析

  • MR是通過JobSubmitter.submitJobInternal提交給RM的

  • 在submitJobInternal中通過writeSplits(JobContext job, Path jobSubmitDir)將job的輸入文件進(jìn)行split

  • writeSplit只是對新舊api進(jìn)行了下封裝,根據(jù)你的代碼選擇新舊api,這里調(diào)用writeNewSplits使用新API對file進(jìn)行split

  • 整個(gè)切片的邏輯過程主要就是在writeNewSplit里

① writeNewSplits源碼分析

進(jìn)入writeNewSplits()方法,可以看出該方法首先獲取splits數(shù)組信息后,排序,將會(huì)優(yōu)先處理大文件,最終返回mapper數(shù)量。這其中又分為兩部分:確定切片數(shù)量 和 寫入切片信息。 確定切片數(shù)量的任務(wù)交由FileInputFormat的getSplits(job)完成,寫入切片信息的任務(wù)交由JobSplitWriter.createSplitFiles(jobSubmitDir, conf, jobSubmitDir.getFileSystem(conf), array)方法,該方法會(huì)將切片信息和SplitMetaInfo都寫入HDFS中。return array.length,返回的是map任務(wù)數(shù),默認(rèn)map的數(shù)量是: default_num = total_size / block_size;

其內(nèi)部邏輯主要分為以下幾個(gè)步驟:

  • 創(chuàng)建InputFormat實(shí)例,用實(shí)例調(diào)用getSplits方法對文件進(jìn)行切分,getSplits內(nèi)部是切分的主要邏輯;

  • 將切片文件根據(jù)split的大小進(jìn)行sort逆序排序;

  • createSplitFiles:將保存切片信息的array數(shù)組落地到文件;

② getSplits源碼分析

如何進(jìn)行MapReduce中的JobSplit源碼分析

如何進(jìn)行MapReduce中的JobSplit源碼分析

getSplits主要是將files進(jìn)行切片,將文件路徑path、偏移量(即起始位置,是該split在整個(gè)文件中的起始位置)、切分大小splitSize、偏移量所在block的locations信息Host和在內(nèi)存中的host信息寫入FileSplit對象中,一個(gè)split對應(yīng)一個(gè)對象,最后放入splits中返回。

③ createFile源碼分析

如何進(jìn)行MapReduce中的JobSplit源碼分析

createSplitFiles創(chuàng)建的文件包括兩個(gè),分別是記錄切片的切片文件和記錄切片元數(shù)據(jù)的切片元數(shù)據(jù)文件 。

補(bǔ)充內(nèi)容:

getSplits方法中split切片的大小

  • 首先要區(qū)分兩個(gè)概念:塊(block)和切片(split)。塊是HDFS中的概念,文件在HDFS中是以塊為單位進(jìn)行存儲(chǔ)。切片是MapReduce中的概念;

  • split的大小由公式可知,取決于minSize、blockSize、maxSize三者之間的大小關(guān)系;從而也決定了split和block塊的大小關(guān)系,我們在實(shí)際使用中要保證split和block是一對一的關(guān)系;

如何進(jìn)行MapReduce中的JobSplit源碼分析

關(guān)于如何進(jìn)行MapReduce中的JobSplit源碼分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

分享文章:如何進(jìn)行MapReduce中的JobSplit源碼分析
文章地址:http://www.aaarwkj.com/article10/gjghgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、響應(yīng)式網(wǎng)站外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)微信小程序、網(wǎng)站內(nèi)鏈

廣告

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

綿陽服務(wù)器托管
美女视频黄的日本的日进去了| 四影虎影永久免费观看| 日韩精品欧美中文字幕| 亚洲欧美日韩在线观看a三区| 国产午夜视频成人无遮挡| 欧美日韩亚洲高清专区| 日日躁夜夜躁狠狠躁欧美| 给我搜一个一级黄色片| 欧美日韩国产一下老妇| 亚洲av毛片在线免费播放| 人妻久久一区二区三区精品99| 福利午夜福利在线观看| 欧美激情一区二区亚洲专区| 精品人妻二区中文字幕| 精品亚洲一区二区三区四区| 久久精品国产亚洲av波多| 琪琪精品免费一区二区三区| 蜜臀av中文字幕亚洲| 久久国产高清亚洲电影| 日本韩国精品视频在线| 日本午夜视频一区二区| 日本加勒比在线播放一区| 日韩二区三区精品视频| 精品特色国产自在自线拍| 日韩一区中文字幕久久| 一区二区三区四区蜜桃av| 刘亦菲毛片一区二区三区| 精品一区二区在线不卡| 91久久国产香蕉熟女| 真实夫妻露脸爱视频九色网| 亚洲人妻激情一区二区| 中文字幕黄色三级视频| 亚洲成人高清av在线| 日本中文字幕乱码一区| 久久综合亚洲鲁鲁五月天| 亚洲精品在线观看午夜福利| 免费av在线观看日韩| 久久久久精品激情三级| 日日添夜夜躁欧美一区二区| 免费黄色一区二区三区| 国产精品蜜臀av在线一区|