Furion Scheduler的混合负载管理

Furion Scheduler的混合负载管理转 http www transwarp cn news detail id 203 多租户场景下实现 Inceptor 中的作业调度是复杂的 不仅要考虑到任务自身的优先级和资源占用情况 而且要结合不同用户 组 角色的权限以及资源配额限制 做细粒度的调度管理 通常会遇到以下几项问题 1 资源被大批处理任务占用 导致小的报表任务一直无法被调度 2 某个用户持续提交任务

多租户场景下实现Inceptor中的作业调度是复杂的,不仅要考虑到任务自身的优先级和资源占用情况,而且要结合不同用户|组|角色的权限以及资源配额限制,做细粒度的调度管理。通常会遇到以下几项问题:

1. 资源被大批处理任务占用,导致小的报表任务一直无法被调度。

2. 某个用户持续提交任务,导致系统资源被过度占用,无法执行其他用户的任务。

3. 以往以Stage为调度粒度的方式不能充分利用空闲CPU资源,需要细化粒度。

为解决以上问题,我们在Inceptor 5.0中优化了原有的资源调度器Inceptor Scheduler,可以解决混合负载下的资源调度问题,提供更好的SLA。

传统Scheduler的调度算法


让我们先回顾一下TDH 4.x系列中Inceptor Scheduler的大致工作流程。当一个SQL的执行计划Action被触发后,SparkContext被创建,接着实例化DAGScheduler,DAGScheduler负责根据RDD依赖链划分Stage任务阶段,随后把Stage以TaskSet的形式提交给TaskScheduler。TaskScheduler负责维护所有TaskSet,并根据设置的调度模式,对各个TaskSet进行调度。TaskScheduler会为每个TaskSet创建一个TaskSetManager对象,用于管理TaskSet的生命周期,以及TaskSet内部Task的调度。该过程中的资源调度以TaskSet或者Task为粒度,会话对其不可见,也就是说它无法在多租户的场景下,根据用户权限和优先级的不同去分配资源,因此限制了作业调度在企业级生产中的灵活性。

新Scheduler的创新一:更精细的调度模式


Inceptor Scheduler共支持三种调度模式:FIFO、FAIR、FURION。这三种模式的区别在于调度逻辑的差别。

FIFO:先进先出是最简单的模式,它根据所有提交的任务按照顺序逐一执行,调度对象是TaskSet。

FAIR:FAIR提供了队列(或资源池)的概念,不同队列具有不同权重。FAIR的调度对象是TaskSet,TaskSet可以提交至不同队列。队列之间的调度采用fair策略,队列内部可以采用fifo或fair策略。

Furion Scheduler的混合负载管理

FURION:FURION是开源Spark所不支持的调度模式。它采用树形结构构建队列关系,调度指标有CPU资源数量和比值、队列权重、运行任务数。每个队列都是树形结构中的一个节点,根据节点中的父子和兄弟关系在调度指标上的关系决定调度顺序。FURION调度对象是Task。

Furion Scheduler的混合负载管理

FURION模式和FAIR模式的对比

1. FURION和FAIR模式在实现方式上存在共性:

首先它们都是完全公平策略的一种实现;

其次都是采用加权的排序调度算法。

2. 不同之处在于:

FURION中的队列关系采用数据结构构建,而FAIR中的队列关系是平行的;

其次FURION是对Task粒度进行调度,而FAIR的调度粒度是Task。

3. 总体上,Furion Scheduler比FAIR Scheduler能提供更好地调度策略,资源管理的粒度,对权重和用户调度策略具有更好的感知能力。

新Scheduler的创新二:图形化的ACL和SLA配置


Inceptor Scheduler的配置可以通过配置文件或者在Guardian上实现。Guardian配置的方法更直观简单,更推荐普通用户使用,因此本文仅介绍Guardian上的配置方式。

成功安装Guardian插件后,打开Guardian界面点击“权限”->“INCEPTOR”,选择待配置的Inceptor服务。

Furion Scheduler的混合负载管理

Inceptor Scheduler在该配置模块中所涉及的配置内容包括“队列权限”和“计算配额”两项。

队列权限

队列权限的设置中,管理员可以对用户|组|角色设置GLOBAL(全局)权限,以及对某一个队列的权限。队列权限分为三种:SUBMIT、ADMIN、ACCESS。

1. SUBMIT:代表用户|组|角色对当前队列是否具有提交作业的权限。

2. ADMIN:代表用户|组|角色是否具有把对队列的任意操作权限赋予其他用户的权限。

3. ACCESS:表示用户|组|角色是否具有访问此Inceptor服务的权限,只能在全局配置中设置。

  • Furion Scheduler的混合负载管理

计算配额

点击计算配额项,进入计算配额管理页面。管理员可以在该界面上设置队列相关参数。

由于FURION涵盖了FAIR和FIFO的调度功能,调度方式更有效,所以目前Guardian上只按照FURION模式提供参数配置。各个队列按照树形结构显示,队列名称右侧提供了队列各项配置属性,其中包括队列的权重、预留CPU核数、预留CPU百分比、最大CPU核数、最大CPU百分比以及调度策略。

Guardian上还提供配置单个队列、单个连接和单个用户可以向Inceptor提交的最大SQL数,可以在“默认配置”和“用户设置”两栏中配置。在“用户设置”栏中点击“添加配额”添加用户计算配额。

Furion Scheduler的混合负载管理

不在用户设置中的用户将采用默认配置。

Furion Scheduler的混合负载管理

Inceptor Scheduler的作用效果演示


下面的视频对以下几个场景,演示了在Inceptor Scheduler的控制下可以达到的作业调度效果:

1. 普通用户之间的任务监控相互隔离,在作业状态监控页面上只能看到自己提交的任务。而Admin可以看到所有任务。

2. 在Guardian上配置队列权限和计算配额,并且及时生效。

3. 优先级高的任务先被执行。

4. 非共享的资源约束-资源预留功能。设置两个队列:etl1权重高但保留资源占比低;etl2权重低但保留资源占比高。然后观察执行速度。

5. 可共享的资源约束-最大资源配额。设置两个队列:etl1权重高但是被限制了最大资源配额;etc2权重低但是没有最大资源配额限制。然后观察执行速度。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232700.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 构造哈夫曼树的算法_哈夫曼树的应用数据结构

    构造哈夫曼树的算法_哈夫曼树的应用数据结构一、什么是赫夫曼树给定n个权值作为n个叶子节点,构造一课二叉树,若该树的带权路径长度和(wpl)达到最小,称这样的二叉树为最优二叉树,也就是赫夫曼树。要理解这句话,我们需要了解几个关键词:路径:

    2022年8月16日
    7
  • 在anaconda中安装pycharm_anaconda和pycharm关联

    在anaconda中安装pycharm_anaconda和pycharm关联经历了装软件的头疼阶段后,终于搞明白Anaconda,python,Pycharm之间的关系及各种python包的安装了一、Anaconda,python,Pycharm1、如果要使用python进行深度学习的话首先需要一个开发环境,说白了就是编python程序的一个软件,这个一般选pycharm比较方便。2、接着需要在pycharm中加载一个python的编译器,这个时候安装一个python即可,网上搜【python安装教程】会有很多。3、也可以安装Anaconda然后pycharm里的编译器选

    2022年8月29日
    4
  • docker镜像文件导出_docker导入导出镜像

    docker镜像文件导出_docker导入导出镜像导语:需要迁移docker目录,以防万一备份一下镜像。方法1:dockerimages|awk'{print$1″:”$2}’#效果等同于dockerimages–format'{{.Repository}}:{{.Tag}}’逐个导出foriin`dockerimages–format'{{.Repository}}:{{.Tag}}’`;dodockersave$i>/mnt/images/`echo$i|sed’s/:/-

    2025年8月27日
    8
  • 常见图片文件格式简析下载_图片的文件格式有哪些

    常见图片文件格式简析下载_图片的文件格式有哪些“常见”:此处指BMPJPEGGIFPNG四种。软件:Windows画图(除了Photoshop,我最喜欢的编辑器,简单粗暴)HxDBMPBMP文件分为4部分:bmp文件头(bmpfileh

    2022年8月3日
    10
  • pycharm2021.8激活码(注册激活)

    (pycharm2021.8激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlZ9LZO4ZKWA-eyJsa…

    2022年3月22日
    47
  • ant man什么意思_汽车的ANT是什么意思?

    展开全部ANT就是天线接口,用来连接天线。常见于收音机,或者GPS等上面。在接收短波或FM时需62616964757a686964616fe58685e5aeb931333433626437要外界天线,以增加接收灵敏度。作为高速数据传输领域的新成员,它在智能网联汽车中所起到的作用是举足轻重的。传统汽车对于天线的需求非常有限,仅仅在于接收一些较低频率的AM/FM信号、GPS信号,以及近两年才开始普及…

    2022年4月6日
    297

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号