Hadoop在Ubuntu上的任務調度主要依賴YARN(Yet Another Resource Negotiator),其核心機制如下:
-
調度器類型
- FIFO調度器:按作業提交順序調度,先到先得,適用于簡單場景。
- Capacity Scheduler:支持多隊列資源分配,可設置隊列容量、優先級及彈性資源分配,適合多用戶共享集群。
- Fair Scheduler:動態分配資源,確保各作業公平共享集群資源,支持搶占機制,適用于混合任務場景。
-
調度流程
- 作業提交:用戶通過
hadoop jar命令提交任務至YARN,ResourceManager接收后初始化資源。
- 資源分配:ResourceManager根據調度策略為作業分配資源,生成ApplicationMaster管理任務執行。
- 任務執行:ApplicationMaster將任務分解為子任務(如Map/Reduce),調度到NodeManager節點的容器中運行。
- 監控與容錯:ResourceManager實時監控任務狀態,失敗時重新調度,確保任務完成。
-
配置方式
- 通過修改
yarn-site.xml配置文件指定調度器類型(如yarn.resourcemanager.scheduler.class參數)。
- Capacity Scheduler和Fair Scheduler需額外配置隊列資源、優先級等參數。
-
工具支持
- 可結合Oozie、Azkaban等工具實現復雜任務調度(如工作流、定時任務)。
- 通過YARN Web界面監控任務進度、資源使用情況。
參考來源: