TDH Enterprise 以下版本的 Inceptor 通过xml文件配置 furion 调度模式

  其他常见问题
内容纲要

概要说明


Inceptor Scheduler支持三种资源调度策略:FIFO、FAIR、FURION。
其中FIFO和FAIR是兼容了Spark中对应的调度算法,管理的粒度是TaskSet。FURION是Inceptor中独特的调度策略,它沿用了FAIR调度方式,不同的是FURION采用树形结构的形式管理资源队列,并将管理粒度细化到Task。

注意:xml方式并不推荐,优先建议走Guardian页面的方式。
该方法只适用于 TDH Enterprise 以下版本。

如果是 Enterprise 及以上版本的许可证,强烈推荐走 Guardian 页面配置;

详细说明


1、FIFO:先进先出是最简单的模式,它根据所有提交的任务按照顺序逐一执行。把应用按提交的顺序排成一个先进先出的队列,在进行资源分配的时候,先给队列中

2、FAIR:采用相对于FIFO更加公平的调度方式。Fair调度器允许用户创建多个平行的资源池(队列),作业可以指定到某个队列中。每个资源池具有各自的weight和minShare:

  • weight表示当前资源池相对于其他资源池可以获得的资源比例,以此体现资源池的优先级;
  • minShare表示资源池最小的资源分配,从而保证队列总是可以获得一定的资源,而不用改变优先级。

3、FURION:FURION模式沿袭了FAIR的调度算法,都是完全公平策略的一种实现,并且采用采用加权的排序调度算法。与FAIR不同的是,FURION将管理粒度缩小至Task。并且采用了树形结构构建队列关系,调度指标有CPU资源数量和比值、队列权重、运行任务数。每个队列都是树形结构中的一个节点,根据节点中的父子和兄弟关系在调度指标上的关系决定调度顺序。FURION内的每个节点都可以有自己的子节点,每个节点下的资源由其子节点共同分配。

操作步骤

使用 furion.xml 来配置 furion 调度模式时,一定要关闭 inceptor.scheduler.enabled ,也就是把这个参数的值设置为 false 。


  1. 编写 furion.xml 文件
  2. 通过 Manager 修改 Inceptor 配置,并重启生效
  3. 提交 sql,在 4040 验证

1、编写 furion.xml 文件

FURION 模式是基于XML方式进行配置,furion.xml 可以参照 furion.xml.template 文件;

furion-example.xml 配置文件示例如下:

file

该配置有如下特性:

  • 该配置文件在系统启动时一次性加载。
  • 资源池名称不区分大小写,但是属性名及值大小写敏感。
  • 可配置多级的树形结构,树的叶子节点,为用户可使用的资源池,非叶子节点为调度辅助节点。
  • 有效的配置需要满足 weight 和 ratio 值的约束。

FURION 中每个节点可配置属性值包括:

  • weight:控制每个节点的优先级,值越大对系统资源的使用优先级越高。注:整数值,默认1
  • rsvCPUNums: 每个节点的预留资源(CPU核数目)。每个节点的可见系统资源为(系统总核数 – 其他节点的预留总核数)。即使该节点或子节点中没有运行任务,这部分资源也会处于空闲状态。默认0.
  • rsvCPURatio: 作用同rsvCPUNums,百分比数值。注:0~100之间。默认0.
  • maxCPUNums: 每个节点的最大资源量(CPU核数目)。该值控制节点的最大资源使用量,即超过该限制的资源池的任务将不再被调度,直到节点有空闲资源为止。
  • maxCPURatio: 作用同 maxCPUNums, 百分比数值。注:0~100之间。默认100.
  • scheduler: 每个资源池内部的调度算法,可为 FIFO 或 FAIR。默认FIFO.

2、通过 Manager 修改 Inceptor 配置,并重启生效

通过 Manager 配置 FURION(类FAIR配置方式,仅适用于TDH 5.1.3及以后版本);

-Dspark.scheduler.mode=FURION -Dngmr.furion.desc.xml.filename=/etc/inceptor1/conf/furion.xml

PS:要指定Inceptor Server 所在节点上的 xml 文件配置的绝对路径,inceptor1 为当前 inceptor 的组件名

file

然后配置服务,重启 Inceptor 生效。重启之后打开4040页面可以看到如下配置:

file

3、提交 sql,在 4040 验证

使用时需要在SQL中预先执行, set ngmr.furion.pool=<pool_name> 显式指定资源池。

file

然后可以看到 sql 执行 pool name 已经切换到 TSPOOL1 了。

file

如果希望关闭 FURION,只需要将Inceptor 配置重置即可

在 Manager 的 Inceptor 配置界面上取消配置项 EXTRA_DRIVER_OPTS 的内容 -Dspark.scheduler.mode=FURION -Dngmr.furion.desc.xml.filename=/etc/inceptor1/conf/furion.xml
然后重启 Inceptor 生效。

常见问题:


  1. FAIR 和 FURION 的加载优先级是 XML > Guardian > Default 的优先方式
  2. 如果用户在Manager 页面添加了 EXTRA_DRIVER_OPTS 的内容 -Dspark.scheduler.mode=FURION -Dngmr.furion.desc.xml.filename=/etc/inceptor1/conf/furion.xml ,但是对应路径下没有 XML 配置文件或者 XML 格式或者内容错误,则Inceptor 启动失败;
  3. 采用该方法配置,使用时需要在 SQL 中预先执行, set ngmr.furion.pool=<pool_name> 显式指定资源池。如果希望默认使用 furion 资源池,可以在 Manager 页面新增参数,如下图。

file

这篇文章对您有帮助吗?

平均评分 5 / 5. 次数: 1

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。