数据岗位面试题更新 2026-08-05

请阐述 MapReduce 作业调度器的工作机制,并说明如果要自定义调度策略,应当如何进行?

数据系统设计技术原理Apache Hadoop

考察说明

考查对 MapReduce 调度器原理的理解和自定义调度器的能力。

回答思路

  1. 【回答框架 1】MapReduce 调度器负责在集群中为作业分配资源,决定任务执行顺序。默认有 FIFO、Capacity 和 Fair 调度器。FIFO 按提交顺序执行,Capacity 为多租户提供容量保证,Fair 在运行作业间公平分配资源。
  2. 【回答框架 2】调度器核心是 JobTracker(或 ResourceManager)维护作业队列,根据调度策略为任务分配空闲的 TaskTracker(或 Container)。调度策略包括资源计算、任务选择、节点选择等。
  3. 【回答框架 3】自定义调度器需继承 Hadoop 的 TaskScheduler 类(或实现 YARN 的 ResourceScheduler 接口),重写相关方法如 assignTasks 或 allocate,定义队列结构、排序规则等。然后修改配置文件指定 scheduler 类,并重启集群。
  4. 【关键点 1】调度器本质是资源分配决策模块,控制作业执行顺序与资源使用。
  5. 【关键点 2】自定义调度器需实现调度接口,并配置生效。
  6. 【易错点 1】自定义调度时需考虑资源公平性、死锁和任务本地性。