Hadoop通過YARN進行任務調度,核心組件包括ResourceManager、NodeManager和容器(Container),調度流程及策略如下:
- 任務提交:用戶通過客戶端提交作業到ResourceManager,ResourceManager構建ApplicationMaster進程。
- 資源分配:ResourceManager根據調度策略為ApplicationMaster分配資源(如內存、CPU),選擇合適的NodeManager節點。
- 任務執行:NodeManager在容器中啟動任務(如Map/Reduce任務),并監控進度,向ResourceManager匯報狀態。
- 調度策略:
- FIFO(先進先出):按作業提交順序調度,簡單但可能導致長任務阻塞。
- Capacity Scheduler(容量調度):支持多隊列,每個隊列分配固定資源,隊內按FIFO調度,可限制用戶資源占用。
- Fair Scheduler(公平調度):動態分配資源,確保所有作業公平共享集群資源,支持作業搶占。
- 任務監控與容錯:ResourceManager和NodeManager監控任務狀態,失敗時重新調度任務。
調度器類型可通過配置文件yarn-site.xml
的yarn.resourcemanager.scheduler.class
參數設置。