Yarn 资源调度器解析

本文详细解析了Yarn的资源调度器,包括Capacity Scheduler和Fair Scheduler。介绍了资源调度器的基本架构、资源表示模型、调度模型和抢占模型。重点讨论了Capacity Scheduler的容量保证和动态配置以及Fair Scheduler的资源公平共享和负载均衡策略。
摘要由CSDN通过智能技术生成

Yarn 资源调度器解析篇

Yarn资源调度器简介

资源调度器是Yarn中最核心的组件之一,他是ResourceManager中的一个可插拔的服务组件,负责整个集群的管理和分配;
目前Yarn中的作业类型:
1.批处理作业,这种作业比较耗时,对时间的完成没有严格要求,如数据挖掘和机器学习等;
2.交互式作业,这种作业一半希望能够及时的返回结果,例如:hive的sql查询;
3.生产性作业:这种作业要求有一定量的资源保证,如统计值计算,垃圾数据分析等;

为了满足多用户多队列的资源分配问题以及Yarn自带的FIFO(先进先出资源调度器)单队列的问题,又引入了Yahoo的Capacity Scheduler和FaceBook的Fair Scheduler;

Yarn的资源调度器的基本架构

资源调度器作为Yarn中的可插拔的资源调度器,它定义了一套接口规范以便用户可按照规范实现自己的调度器,本文主要从资源调度器的可插拔性和时间处理器两方面来说;

1.ResourceScheduler之插拔式组件
在ResourceManager初始化的时候会根据用户的配置来创建一个具体的资源调度对象,通过配置文件yarn.resourcemanager.scheduler.class指定,如下代码:

  protected ResourceScheduler createScheduler() {
   
    String schedulerClassName = conf.get(YarnConfiguration.RM_SCHEDULER,
        YarnConfiguration.DEFAULT_RM_SCHEDULER);
    LOG.info("Using Scheduler: " + schedulerClassName);
    try {
   
      Class<?> schedulerClazz = Class.forName(schedulerClassName);
      if (ResourceScheduler.class.isAssignableFrom(schedulerClazz)) {
   
        return (ResourceScheduler) ReflectionUtils.newInstance(schedulerClazz,
            this.conf)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值