job=job.getinstance獲得job物件
job.set 新增configuration等配置引數
job.waitforcomplete()原始碼內部實則呼叫submit()方法
之後jobsubmiter中有個成員cluster cluster中又有個成員proxy**物件,幫助提交到yarn上去,yarnrunnable
通過yarnrunnable拿到乙個提交資源的路徑stagingdir ,
再通過runnable拿到乙個jobid,然後jobid+stangingdir構成乙個提交路徑
呼叫fileinputformat.getsplit()獲取切片規劃的list,即與128m想比較
序列化list成乙個檔案job.split,,拷貝到jobid+stangingdir構成的目錄中
將job相關引數寫成乙個job.xml檔案,同樣cp到路徑中去
拷貝jar包到路徑中去
MR Job提交流程原始碼和切片原始碼詳解
waitforcompletion submit 1建立連線 connect 1 建立提交job的 newcluster getconfiguration 1 判斷是本地yarn還是遠端 initialize jobtrackaddr,conf 2 提交job submitter.submitjob...
mapreduce job提交原始碼流程
waitforcompletion submit 1建立連線 connect 1 建立提交job的 newcluster getconfiguration 1 判斷是本地yarn還是遠端 initialize jobtrackaddr,conf 2 提交job submitter.submitjob...
HDFS客戶端 輸出流原始碼解析
一 建立檔案 1 dfsclient.create 用於建立乙個空檔案,返回乙個輸出流物件。在函式內部,會構造乙個dfsoutputstream,它主要是通過namenode的rpc方法,建立乙個檔案到namenode。2 此建構函式還會計算乙個包中最大可以放的資料。一般來說,資料報最大能達到64k...