2014-10-09 135 views
4
  1. 我們通過hadoop的jar命令提交的jar文件
  2. 它擊中主節點

會的Hadoop jar命令的jar文件複製到所有從節點,並開始執行或怎麼說作品和誰做的?作業跟蹤器或Namenode?hadoop的jar命令執行

回答

4

「hadoop jar」命令告訴hadoop通過提供jarfile,輸入路徑,輸出路徑來執行集羣中的作業。 jar文件包含作業配置和所有Map和Reduce代碼。

步驟:

  1. 招聘客戶端提交作業到JobTracker的(JT)。在後臺,它將包含Config,Mapper和Reducer代碼,輸入和輸出路徑信息的二進制文件複製到與任務跟蹤器(TT)接近的集中區域的HDFS中。一旦TT需要使用該代碼,他們只需將它下載到datanode本地,以便Map和Reduce任務處於站立狀態時,它們將使用該代碼運行本地數據。

  2. JT查詢NameNode關於包含數據的數據位置和數據節點名稱。

  3. 有了這些信息,JT就會與TT進行對話並通過考慮與數據最接近的TTS(如果它們有可用的執行時隙)來創建執行計劃。如果他們不是,那麼它適用於機架位置,並找到相同機架中的任何TT都有可用插槽。如果仍然找不到,那麼在任何機架/任何地點找到TT。

  4. 根據執行計劃,JT將工作提交給TTs。 TT現在支持Map和Reduce Tasks並在數據上執行。

  5. TT定期向JT報告進度和心跳(默認爲每5秒)。每個Map和Reduce任務都通過TT向JT報告其進度/完成/錯誤。即Mapper和Reducer任務報告給TT和TT報告給JT。如果MR任務死亡,那麼TT將向JT報告這一情況,JT會加快其他MR任務來處理錯誤。

  6. 一旦與自己的任務,JT信號的TT完成所有映射器告訴減速運行他們的減速執行(即運行減少()方法)

  7. 一旦所有映射器和減壓器完成,並最終輸出寫入,JT將其狀態更新爲SUCCESS並通知客戶。

+1

很酷,你能不能在這個上顯示一些引用,在這裏我可以看得更遠。看起來它和YARN hadoop 2.0很相似,它們將jar複製到HDFS,然後根據需要複製到datanode。謝謝我不能upvote :(少於15聲望... :) – Muthu 2014-10-09 17:21:08

+1

Cloudera教程和Hadoop權威指南,一個良好的開端.http://cloudera.com/content/cloudera/en/training/courses/udacity/mapreduce.html – Sekhar 2014-10-10 12:40:00