簡體   English   中英

hadoop jar命令執行

[英]hadoop jar command Execution

  1. 我們通過hadoop jar命令提交jar文件
  2. 它命中主節點

hadoop jar命令會將jar文件復制到所有從屬節點並開始執行或者如何工作以及由誰執行此操作? 工作跟蹤器或Namenode?

“hadoop jar”命令通過提供jarfile,輸入路徑,輸出路徑告訴hadoop在集群中執行作業。 jar文件包含Job配置,以及所有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向TT提交工作。 TT現在支持Map和Reduce Tasks並執行數據。

  5. TT定期向JT報告進度和心跳(默認值為每5秒)。 每個Map和Reduce任務都通過TT向JT報告其進度/完成/錯誤。 即Mapper和Reducer任務向JT報告TT和TT報告。 如果MR任務死亡,那么TT會將此報告給JT,JT會旋轉其他MR任務來處理錯誤。

  6. 一旦所有映射器完成了他們的任務,JT發出TT信號告訴Reducers運行他們的reducer執行(即運行reduce()方法)

  7. 完成所有Mapper和Reducers並寫入最終輸出后,JT會將其狀態更新為SUCCESS並通知客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM