学习 YARN(五):调度器
2013 年 8 月 24 日
更新至 Hadoop 2.9.2 版本
YARN 提供了两个主要的调度器实现:
- Capacity Scheduler 根据集群资源的百分比分配资源;
- Fair Scheduler 根据集群资源的内存和处理器分配资源。
Capacity Scheduler
Capacity Scheduler 由 Yahoo 贡献给 Hadoop 社区。Capacity Scheduler 在共享的多租户的集群中保证每个租户资源。
使用 Capacity Scheduler 调度器,编辑 yarn-site.xml 文件:
yarn.resourcemanager.scheduler.class org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
Capacity Scheduler 使用队列作为资源调度的抽象。根队列为 root。
以创建 adhoc、batch、stream 子队列为例:
+----------+ | | | default | +----+-----+ | +-----------------------------+ | | | | | | +-----v-----+ +-----v-----+ +-----v-----+ | | | | | | | adhoc 30% | | batch 50% | | stream 20%| +-----------+ +-----------+ +-----------+
编辑 capacity-scheduler.xml 文件:
yarn.scheduler.capacity.root.queues default yarn.scheduler.capacity.root.default.queues adhoc,batch,stream yarn.scheduler.capacity.root.default.capacity 100 yarn.scheduler.capacity.root.default.adhoc.capacity 30 yarn.scheduler.capacity.root.default.batch.capacity 50 yarn.scheduler.capacity.root.default.stream.capacity 20
Fair Scheduler
TODO