1. 程式人生 > >hadoop的job分發機制

hadoop的job分發機制

  1. hadoop的jar包主程式執行到job.waitForCompletion(true);
  2. 向resourcemanger申請一個job任務
  3. resourcemanger返回job相關資源的路徑(staging-dir,位於hdfs的temp中,存)和jobid給主程式
  4. 主程式將資源(jar包等)提交到staging-dir,然後向resourcemanger彙報提交成功
  5. resourcemanger將job加到job佇列
  6. nodemanger通過心跳機制去檢查任務佇列,檢查是否有需要自己執行的任務,如果有將任務領取
  7. nodemanger領取任務後初始化container,分配資源(記憶體,磁碟,網路,cpu等),從staging-dir拉取資源。啟動nodemanger的MRAppMaster,並向resourceMangeer註冊。
  8. nodemanger啟動map task,執行map操作
  9. nodemanger啟動reduce task,並傳遞map task的結果
  10. nodemanger的MRAppMaster向resourcemanger登出自己,回收資源 注意: resourcemanger負責資源排程 MRAppMaster負責監控任務