开启cgroup

耀灵2年前技术文章1596

Control groups 是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的的物理资源的机制。

Cgroup 子系统:blkio、CPU、cpuacct、cpuset、devices、Memory、net_cls...,YARN 使用了 CPU、Memory 子系统

默认状态下, container 的 CPU 使用是没有限制的,container 申请了 1 vcore ,实际上能够使用所有的 CPU 资源。所以如果 NM 上分配了一个 vcore 申请较少实际上 CPU 使用极高的任务,常常会导致节点上运行的所有的任务都延时。

1、安装cgroup

默认系统已经安装了cgroup了,如果没有安装可以通过命令安装

yum install -y libcgroup-tools   ##nodemanager节点都要安装

然后通过命令启动:

systemctl start cgconfig.service

2、Cloudera Manager 中设置

2.1先在主机上开启 启用基于 Cgroup 的资源管理

启用使用控制组 (cgroup) 的资源管理。当切换此开关后,必须重启该主机上的角色才能启用或禁用 cgroup。在角色配置组和单个角色的配置页面中可以找到按资源列出的控件。

1.png

2.2 然后在 YARN 中开启 Cgroup

2.png

注意:

开启了 yarn.nodemanager.container-executor.class 后,会自动开启运行用户的设置,报错信息如下

Application application_1623116025711_0002 initialization failed (exitCode=255) with output: main : command provided 0 main : run as user is nobody main : requested yarn user is hdfs Can't create directory /yarn/nm/usercache/hdfs/appcache/application_1623116025711_0002 - Permission denied Did not create any app directories For more detailed output, check the application tracking page: http://yilitestdn02.com:18088/cluster/app/application_1623116025711_0002 Then click on links to logs of each attempt. . Failing the application.


使用 Linux Container Executor 的非安全模式的 UNIX 用户 yarn.nodemanager.linux-container-executor.nonsecure-mode.local-user 在非安全模式中使用 Linux-container-executor 时,运行容器的 UNIX 用户。

3.png


设置允许系统用户:

4.png


设置最小用户id

5.png

禁止的系统用户,只保留bin

6.png

容器执行程序组 yarn.nodemanager.linux-container-executor.group

7.png

占用节点总 CPU 的百分比 NodeManager 启动的容器占用节点资源的占比,比如这里是 80%,最多只使用节点 80%的 CPU 资源。 Containers CPU Limit Percentage  yarn.nodemanager.resource.percentage-physical-cpu-limit

8.png


上述配置调整后的差异对比:

9.png


相关文章

keycloak高可用部署

keycloak高可用部署

添加keycloak应用rancher应用商店模式添加keycloak仓库地址rancher应用商店添加bitnami的helm仓库地址https://charts.bitnami.com/bitna...

Docker镜像是有仓库

在Docker中,当我们执行 docker pull xxx 的时候 ,它实际上是从 hub.docker.com 这个地址去查找,这就是 Docker 公司为我们提供的公共仓库。在工作中,我们不可能...

ACOS无数据告警实践

ACOS无数据告警实践

1.说明在实现数据监控的过程中告警能力无疑是重中之重,无数据告警亦是告警能力中重要的场景,这里我们聊聊关于无数据一些场景和实践方法。2.无数据可能场景对于运维监控平台来说无数据是一个比较复杂的情况,从...

CDP实操--配置Hive/Impala的Ranger策略验证(二)

CDP实操--配置Hive/Impala的Ranger策略验证(二)

1.1Hive/impala的Ranger策略验证确保hive-on-tez的配置页面里已经勾选了“Ranger Service”在terminal中,kerberos登录到hive,用如下命令登录b...

MySQL运维实战(3.1) MySQL官方客户端使用介绍

mysql是mysql安装包默认的客户端。位于二进制安装包的bin目录。或者通过rpm安装包安装mysql-community-client。使用mysql程序linux终端下,输入mysql命令登陆...

Mac安装Hadoop文档-保姆级操作(一)

Mac安装Hadoop文档-保姆级操作(一)

首先配置ssh环境在Mac下如果想使用Hadoop,必须要配置ssh环境, 如果不执行这一步,后面启动hadoop时会出现Connection refused连接被拒绝的错误。首先终端命令框输入:ss...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。