开启cgroup

耀灵2年前技术文章1279

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


相关文章

Docker 容器技术:简化 MySQL 主从复制部署与优化

前言    在现代数据库管理中,MySQL 主从复制是一种关键技术,用于提高数据的可用性和性能。随着 Docker 容器技术的普及,利用 Docker 搭建 MySQL 主从复制环境已成为一种趋势,它...

企业级大数据安全架构(四)

企业级大数据安全架构(四)

Ranger是支持审计功能的,安装时可以选择审计数据保存的位置,默认支持Solr和HDFS。HDFS的配置比较简单,这里就不赘述了,我们这里使用Ambari默认自带的Solr保存审计日志,下面部署So...

flink集成iceberg访问hive catalog任务报错

flink集成iceberg访问hive catalog任务报错

问题现象flink在集成iceberg后访问hive catalog任务无法执行,但flink自身任务正常,iceberg表任务无法执行,报错如下:Caused by: java....

大数据集群部署规划(四)组件建议规格

类型指标名称规格说明HDFS单对NameNode最大文件数1亿-单DataNode最大block数500万GC参数 -Xmx32G单个DataNode磁盘最多block数50万-单个目录下最多文件目录...

容器引擎Podman常用命令浅析

容器引擎Podman常用命令浅析

Podman简介Podman 是一个开源的无守护进程的容器引擎,用于在Linux系统上开发、管理和运行OCI容器。容器既可以以root身份运行,也可以在无root模式下运行。Podman 提供与 Do...

SLS日志采集 

SLS日志采集 

创建Pjoject创建日志库接入日志新建机器组数据接入Logtail配置--添加Logtail配置选择需要的日志文本格式按下列步骤完成即可编辑日志格式配置查询分析数据...

发表评论    

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