开启cgroup

耀灵2年前技术文章1490

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


相关文章

Flink sql 集成hive metastore

Flink sql 集成hive metastore

1、前置条件**确认hive metastore版本(本次版本3.1.2) **hive metastore 部署成功hive依赖jar包分发到每个flink节点:/flink-1.13.6    ...

查看相关服务器信息命令

查看相关服务器信息命令

1、查看服务器架构方式arch2、查看服务器cpu核数nproc3、查看服务器内存大小free -hdmidecode -t 17 | grep Size4、查看某目录下挂载磁盘大小lsblk5、查看...

Trino部署

安装前准备1.1. 创建用户和用户组groupadd trinouseradd -g hadoop trino1.2. 配置环境变量1.2.1. 配置系统环境变量/etc/profileexport...

SQL隐式转换导致索引失效_函数

SQL隐式转换导致索引失效_函数

一、隐式转换分类1.函数2.数据类型3.字符集4.校验规则二、常见案例本节将会针对第一部分提到的四种隐式转换内容,举例说明。1.索引列使用函数导致索引失效示例 SQL 如下,该 SQL 的 where...

MySQL 复制延迟是如何计算的?

MySQL 复制延迟是如何计算的?

前言日常运维中总会收到 MySQL 备库延迟告警,一般数据库监控只读实例延迟都是采集 Seconds_Behind_Master 值,我们都知道它在某些场景下不可靠,今天一起探索 MySQL 是如何计...

Python Web 自动化测试工具 — Selenium

Selenium 是一个 Web 自动化测试工具,Selenium 通过非常简洁方便的 API,使用 Selenium WebDrivers(Selenium web 驱动器)像使用 Firefox,...

发表评论    

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