Hadoop原始碼之JobTracker

2021-06-11 21:38:21 字數 1853 閱讀 5204

jobtracker是map/reducer中任務排程的伺服器。

1、有如下執行緒為其服務:

1)提供兩組rpc服務(intertrackerprotocol、jobsubmissionprotocol)的1個listener執行緒與預設10個handler執行緒;

2)提供任務執**況查詢的一組web服務執行緒,包括socker listener等;

3)expiretrackers:用來停止已經無效的tasktracker服務;

synchronized (tasktrackers)  else 

}} }

}

4)retirejobs:用來除去已經完成任務的tasktracker;

synchronized (jobs) 

}} }

}

5)jobinitthread:用來對job做一些初始化的工作;

synchronized (jobinitqueue)  else  catch (interruptedexception iex) 

}}try

} catch (exception e)

2、實現了兩組rpc服務(協議),其中intertrackerprotocol如下:

1)tasktracker間隔幾秒鐘傳送的心跳服務;

int emitheartbeat(tasktrackerstatus status, boolean initialcontact);
2)向jobtracker獲取新的任務;

task pollfornewtask(string trackername);
3)詢問jobtracker,任務是否可以終結;

string pollfortaskwithclosedjob(string trackername);
4)reduce task詢問jobtracker,哪些map task已經結束;

mapoutputlocation locatemapoutputs(string taskid, string maptasksneeded);
5)獲取檔案系統名;

public string getfilesystemname() throws ioexception;
jobsubmissionprotocol如下:

1)提交乙個待執行的job;

public jobstatus submitjob(string jobfile) throws ioexception;
2)殺死乙個job;

public void killjob(string jobid);
3)獲取job的名字、id等資訊;

public jobprofile getjobprofile(string jobid);
4)獲取job的狀態;

public jobstatus getjobstatus(string jobid);
5)獲取map任務的報告;

public taskreport getmaptaskreports(string jobid);
6)獲取reduce任務的報告;

public taskreport getreducetaskreports(string jobid);

hadoop 原始碼筆記

public inte ce tool extends configurable public int run string args throws exception public static void main string args throws exception toolrunner執行...

Hadoop原始碼結構

hadoop專案已經得到社群以及行業內很多大牛的貢獻,現在版本已經推進到了1.0.0版本,本人以後將就當前1.0.0版本進行原始碼分析,如有重大特性更新的版本發布,會有相關的原始碼增補分析,多謝!bin 此目錄下為進行hadoop配置 執行以及管理的shell命令集合 c 此目錄下為linux下am...

Hadoop原始碼分析之檔案拆分

當我們編寫mapreduce程式的時候,都會進行輸入格式的設定,方便hadoop可以根據設定得檔案格式正確的讀取資料進行處理,一般設定 如下 job.setinputformatclass textinputformat.class 通過上面的 來保證輸入的檔案是按照我們想要的格式被讀取,所有的輸入...