更新时间:2024-11-29 GMT+08:00

启用CGroups功能

配置场景

CGroups是一个Linux内核特性。它可以将任务集及其子集聚合或分离成具备特定行为的分层组。在YARN中,CGroups特性对容器(container)使用的资源(例如CPU使用率)进行限制。本特性大大降低了限制容器CPU使用的难度。

当前CGroups仅用于限制CPU使用率。

配置描述

由于CGroups为Linux内核特性,是通过LinuxContainerExecutor进行开放。请参考官网资料对LinuxContainerExecutor进行安全配置。您可通过官网资料了解系统用户和用户组配置对应的文件系统权限。

  • 请勿修改对应文件系统中各路径所属的用户、用户组及对应的权限,否则可能导致本功能异常。
  • 当参数“yarn.nodemanager.resource.percentage-physical-cpu-limit”配置过小,导致可使用的核不足1个时,例如4核节点,将此参数设置为20%,不足1个核,那么将会使用系统全部的核。Linux的一些版本不支持Quota模式,例如Cent OS。在这种情况下,可以使用CPUset模式。

配置cpuset模式,即YARN只能使用配置的CPU,需要在Manager界面添加以下配置。

表1 cpuset配置

参数

描述

默认值

yarn.nodemanager.linux-container-executor.cgroups.cpu-set-usage

设置为“true”时,应用以cpuset模式运行。

false

配置strictcpuset模式,即container只能使用配置的CPU,需要在Manager界面添加以下配置。

表2 CPU硬隔离参数配置

参数

描述

默认值

yarn.nodemanager.linux-container-executor.cgroups.cpu-set-usage

设置为“true”时,应用以cpuset模式运行。

false

yarn.nodemanager.linux-container-executor.cgroups.cpuset.strict.enabled

设置为true时,container只能使用配置的CPU。

false

要从cpuset模式切换到Quota模式,必须遵循以下条件:

  • 配置“yarn.nodemanager.linux-container-executor.cgroups.cpu-set-usage”=“false”
  • 删除“/sys/fs/cgroup/cpuset/hadoop-yarn/”路径下container文件夹(如果存在)。
  • 删除“/sys/fs/cgroup/cpuset/hadoop-yarn/”路径下cpuset.cpus文件中设置的所有CPU。

操作步骤

  1. 登录Manager系统。选择“集群 > 服务 > Yarn > 配置”,选择“全部配置”
  2. 在左侧导航栏选择“NodeManager > 自定义”,找到yarn-site.xml文件。
  3. 添加表1表2中的参数为自定义参数。

    根据配置文件与参数作用,在“yarn-site.xml”所在行“名称”列输入参数名,在“值”列输入此参数的参数值。

    单击“+”增加自定义参数。

  4. 单击“保存”,在弹出的“保存配置”窗口中确认修改参数,单击“确定”。界面提示“操作成功”,单击“完成”,配置保存成功。

    保存完成后请重新启动配置过期的Yarn服务以使配置生效。