hadoop之JobTracker,TaskTracker,hadoop調度器


DataNode 和NameNode 是針對數據存放來而言的

JobTracker和TaskTracker是對於MapReduce執行而言的

一:JobTracker

JobTracker協作作業的運行;

負責調度分配每一個子任務task運行於TaskTracker上,如果發現有失敗的task就重新分配其任務到其他節點。

一般情況應該把JobTracker部署在單獨的機器上。JobTracker與TaskTracker把持心跳;

       JobTracker失敗:

           1:JobTracker失敗在所有的失敗中是最嚴重的一種;

           2:hadoop沒有處理jobtracker失敗的機制。--它是一個單點故障。

           3:在未來的新版本中可能可以運行多個JobTracker。(hadoop2.0以后)

           4:可以使用ZooKeeper來協作JobTracker。(以后會有zookeeper專題)

二:TaskTracker
TaskTracker運行作業划分后的任務
TaskTracker是運行在多個節點上的slaver服務。TaskTracker主動與JobTracker通信,接收作業,並負責直接
執行每一個任務,為了減少網絡帶寬 TaskTracker最好運行在HDFS的DataNode上;
      TaskTracker失敗:
            1:一個TaskTracker由於崩潰或運行過於緩慢而失敗,它會向JobTracker發送“心跳”。
            2:如果有未完成的作業,JobTracker會重新把這些任務分配到其他的TaskTracker上面運行。
            3:即使TaskTracker沒有失敗也可以被JobTracker列入黑名單。
 
三:hadoop調度器 Hadoop Job Scheduler
Hadoop默認的調度器是基於隊列的FIFO調度器:
    所有用戶的作業都被提交到一個隊列中,然后由JobTracker先按照作業的優先級高低,再按照作業提交時間     的先后順序選擇將被執行的作業。
    優點: 調度算法簡單明了,JobTracker工作負擔輕。
    缺點: 忽略了不同作業的需求差異。
Fair Scheduler(公平調度器):
    1:多個Pool,Job需要被提交到某個Pool中;
    2:每個pool可以設置最小 task slot(猜測最小的job數),稱為miniShare
    3:FS會保證Pool的公平,Pool內部支持Priority(優先級)設置,支持資源搶占(優先級)
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM