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

2021-10-03 05:25:05 字數 1241 閱讀 2599

waitforcompletion()

submit()

;// 1建立連線

connect()

;// 1)建立提交job的**

newcluster

(getconfiguration()

);// (1)判斷是本地yarn還是遠端

initialize

(jobtrackaddr, conf)

;// 2 提交job

submitter.

submitjobinternal

(job.

this

, cluster)

// 1)建立給集群提交資料的stag路徑

path jobstagingarea = jobsubmissionfiles.

getstagingdir

(cluster, conf)

;// 2)獲取jobid ,並建立job路徑

jobid jobid = submitclient.

getnewjobid()

;// 3)拷貝jar包到集群

copyandconfigurefiles

(job, submitjobdir)

; ruploader.

uploadfiles

(job, jobsubmitdir)

;// 4)計算切片,生成切片規劃檔案

writesplits

(job, submitjobdir)

; maps =

writenewsplits

(job, jobsubmitdir)

; input.

getsplits

(job)

;// 5)向stag路徑寫xml配置檔案

writeconf

(conf, submitjobfile)

; conf.

writexml

(out)

;// 6)提交job,返回提交狀態

Job提交流程原始碼

1.開始提交程式 boolean result job.waitforcompletion true 2.當job執行狀態為為define,提交job if state jobstate.define 3.確保job狀態 ensurestate jobstate.define 4.相容新舊api s...

客戶端提交mr job原始碼流程分析

job job.getinstance獲得job物件 job.set 新增configuration等配置引數 job.waitforcomplete 原始碼內部實則呼叫submit 方法 之後jobsubmiter中有個成員cluster cluster中又有個成員proxy 物件,幫助提交到ya...

Job提交流程原始碼解析

1.job.waitforcompletion true 在driver中提交job 1 sumbit 提交 1 connect 1 return new cluster getconfiguration initialize jobtrackaddr,conf 通過yarnclientprotoc...