FileInputFormat切片原始碼解析

2021-10-19 04:01:02 字數 650 閱讀 6776

fileinputformat切片原始碼解析(input.getsplits(job))

程式先找到資料儲存的目錄

開始遍歷處理(規劃切片)目錄下的每乙個檔案

遍歷第乙個檔案ss.txt

a) 獲取檔案大小fs.sizeof(ss.txt)

b)計算切片大小

computesplitesize(math.max(minsize, math.min(maxsize, blocksize))) = blocksize = 128m

minsize是1,blocksie是128m,maxsize是long的最大值

c)預設情況下,切片大小=blocksize

(本地模式塊大小32m,yarn模式128m,老的版本64m)

d)開始切,形成第乙個切片,0-128m第乙個切片 128-256m第二個切片

(每次切片時,都要判斷切完剩下的部分是否大於塊的1.1倍,不大於1.1倍就只劃分為一塊切片,大於1.1倍則多劃分出乙個切片)

(比如129m的檔案,需要兩個快來儲存,卻只需要劃分為乙個切片)

e)將切片資訊寫到乙個切片規劃檔案中

f)整個切片的核心過程在getsplit()方法中完成

g)inputsplit只記錄了切片的元資料資訊,比如起始位置、長度以及所在的節點列表等

golang之slice切片原始碼解析

切片作為常用的資料結構體之一,切片實際上是陣列的抽象,也稱動態陣列,顧名思義,它自帶擴容的機制,因為其靈活性,相對陣列來說被運用的更加廣泛。golang的切片實現是在包runtime slice.go,切片結構體包含array指向陣列的指標,是一塊連續的記憶體空間,len代表切片的長度,cap代表切...

MR Job提交流程原始碼和切片原始碼詳解

waitforcompletion submit 1建立連線 connect 1 建立提交job的 newcluster getconfiguration 1 判斷是本地yarn還是遠端 initialize jobtrackaddr,conf 2 提交job submitter.submitjob...

azkaban web server原始碼解析

azkaban主要用於hadoop相關job任務的排程,但也可以應用任何需要排程管理的任務,可以完全代替crontab。azkaban主要分為web server 任務上傳,管理,排程 executor server 接受web server的排程指令,進行任務執行 1.資料表 projects 工...