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 通過上面的 來保證輸入的檔案是按照我們想要的格式被讀取,所有的輸入...