在上一节中,只是讲解了ResourceManager 的启动,这次来说另外一个核心的点没说,那就是调度.
// Initialize the scheduler
// todo ResourceScheduler 调度器的创建,他的子类之一就是FairScheduler
scheduler = createScheduler();
scheduler.setRMContext(rmContext);
addIfService(scheduler);
rmContext.setScheduler(scheduler);
org.apache.hadoop.yarn.server.resourcemanager.ResourceManager#createScheduler
默认调度器:
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
类图:
在这里面,主要关心的接口为:
org.apache.hadoop.yarn.server.resourcemanager.scheduler.YarnScheduler
抽象类为:
org.apache.hadoop.service.AbstractService
org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler
AbstractService我在之前的章节讲解过,所以本文不做赘述.
直接说 AbstractYarnScheduler (实现了YarnScheduler 接口. )
未完,待续...............