EMR支持在控制台上通过可视化UI管理YARN分区,同时可以批量建立节点组与分区的映射,方便操作。您可以直接在节点组上配置分区属性,扩容和弹性伸缩后,EMR会自动为新增节点打上Node Label,无需重新配置新节点。本文为您介绍如何在EMR控制台上管理YARN分区。
背景信息
适用以下场景:
集群异构
实际的环境部署中,经常会出现不同的机器类型。例如,有些机器是计算型的,有些则是内存型。例如,新采购的机器是大内存和高CPU,偏计算型,已有的机器偏存储型。
多种计算框架共享集群资源
批处理应用占用大量网络资源或CPU资源,导致准实时计算资源被抢占。例如,离线集群上的Flink应用。
重要作业保障
如果不希望重要作业被调度到弹性节点,可以为非弹性节点配置单独的分区,让重要作业使用该分区(此处针对少数不希望因为缩容而被延迟的重要作业)。
借助YARN分区管理能力,运维人员可以根据节点的特性(角色定位、处理能力),将其分为不同的分区,让作业运行在指定分区下的节点上,来满足业务多维度的使用需求,同时也可以更好地管理和调度混合类型的机器资源或应用程序。
前提条件
已创建集群,且集群状态为运行中。创建集群详情,请参见创建集群。
使用限制
适用于EMR-5.11.1及之后版本、EMR-3.45.1及之后版本。
集群状态为运行中。
YARN调度器需使用capacity scheduler。
注意事项
新增或编辑分区后,需要单击部署生效,请在业务低峰期进行操作。
如果YARN调度器切换为fair scheduler,则需要关闭Node Labels开关。
新增分区
进入服务的配置页面。
在顶部菜单栏处,根据实际情况选择地域和资源组。
在EMR on ECS页面,单击目标集群操作列的集群服务。
在集群服务页面,单击YARN服务区域的配置。
单击管理分区页签。
单击新增分区,在新增分区对话框中,配置相关的参数。
参数
说明
分区名称
待新增分区的名称。
长度限制为1~255个字符,仅可使用字母、数字、短划线(-)和下划线(_)。
说明允许创建名为DEFAULT的分区。
分区名不能以短划线(-)和下划线(_)开头。
分区类型
Exclusive(默认):只允许请求和该分区匹配的容器调度到该分区的节点上。
Non Exclusive:将空闲资源共享给请求DEFAULT分区的容器。
关联节点组
选择需要关联的节点组。每个节点组仅可关联一个分区,支持修改关联的节点组。
单击确定。
单击部署生效。
待系统将该配置热更新生效后,即可在YARN UI上看到新增的分区。
部署后默认生效时间为10分钟,如果您希望快速生效,可以在配置页签的yarn-site.xml中新增配置项yarn.nodemanager.node-labels.resync-interval-ms和yarn.nodemanager.node-labels.provider.fetch-interval-ms,修改生效时间,然后在状态页签,手动重启NodeManager组件。
编辑分区
在EMR控制台YARN服务的管理分区页签,单击待修改分区操作列的编辑。
在编辑分区对话框中,可以修改关联的节点组,其余参数不支持修改。
单击确定。
单击部署生效,使操作生效。
删除分区
在EMR控制台YARN服务的管理分区页签,单击待删除分区操作列的删除。
在弹出的对话框中,单击确定。
单击部署生效,使操作生效。
说明删除分区会解绑关联在该分区上的节点组。
如果该分区绑定了队列,则需要在编辑资源队列页签,关闭分区与队列关联管理开关后,才能删除该分区。
查看分区列表
在YARN服务的管理分区页签,您可以查看分区名称、可访问该分区的队列、节点组、分区类型和资源总量等信息。
关闭分区管理能力
如果您要从capacity scheduler切换为fair scheduler,则需要关闭Node Labels开关,以关闭分区管理能力。然后在YARN服务的状态页签,手动重启ResourceManager组件,以使操作生效。
关闭控制台上的管理分区页面
如果您希望完全通过自定义脚本来使用分区管理能力,且不希望EMR控制台进行分区管理的校验时,您可以在YARN服务的配置页签,修改yarn-operator-conf中node_labels_managed_by_emr的参数值为false,刷新控制台后,则管理分区页面不可见,同时node-labels.xml也不会进行分区管理的校验,Node Labels配置详情请参见Node Labels特性使用。