Hadoop YARN启动cgroup进行cpu资源管理

在Hadoop 3.2.1环境下,运行Spark on YARN任务时,计算密集型任务可能会突破分配的CPU上限。通过配置YARN的LinuxContainerExecutor并结合cgroup,可以实现CPU资源的隔离,有效解决资源竞争问题。本文介绍了如何安装cgroup,创建hadoop-yarn目录,修改container-executor和yarn-site.xml配置,以及如何重启HDFS和YARN以应用更改。
摘要由CSDN通过智能技术生成

yarn配置cgroup隔离CPU资源

遇到的问题

我的环境中hadoop版本是 3.2.1

在运行spark on yarn任务时,虽然给每个spark任务分配了一定的CPU资源,但是对于计算密集型任务,它会突破分配的cpu上限,导致cpu飙升。

yarn默认只管理内存资源,虽然也可以申请cpu资源,但是在没有cpu资源隔离的情况下效果并不是太好,在集群规模大,任务多时资源竞争的问题尤为严重。可以通过配置yarn提供的LinuxContainerExecutor结合cgroup来隔离cpu资源

详见yarn-cgroup官方文档

配置cgroup

  1. 安装cgroup
sudo yum install -y libcgroup-tools.x86_64 libcgroup

cgroup的配置文件目录在/sys/fs/cgroup/ 或者 /cgroup
我的 linux 版本是centos7.8,目录在/sys/fs/cgroup

  1. 创建cgroup下的hadoop-yarn目錄
sudo mkdir -p /sys/fs/cgroup/cpu/hadoop-yarn
sudo mkdir -p /sys/fs/cgroup/memory/hadoop-yarn
sudo mkdir -p /sys/fs/cgroup/blkio/hadoop-yarn
sudo mkdir -p /sys/fs/cgroup/net_cls/hadoop-yarn
sudo mkdir -p /sys/fs/cgroup/devices/hadoop-yarn
  1. 启动cgroup
sudo systemctl start cgconfig

配置 yarn

  1. 修改container-executor和container-executor.cfg文件的所有者和权限
chown root:hadoop /$HADOOP_HOME/bin/container-executor
chmod 6050 /$HADOOP_HOME/bin/container-executor

sudo chown root:hadoop /$HADOOP_HOME/etc/hadoop/container-executor.cfg
sudo chown root:hadoop /$HADOOP_HOME/etc/hadoop
sudo chown root:hadoop /$HADOOP_HOME/etc
sudo chown root:hadoop /$HADOOP_HOME
sudo chmod 400 /$HADOOP_HOME/etc/hadoop/container-executor.cfg

系统要求etc/hadoop/container-executor.cfg 的所有父目录(一直到/ 目录) owner 都为 root,这个路径是默认${HADOOP_HOME}/etc/hadoop/container-executor.cfg,如果不方便修改所有父级目录为root权限,就需要新编译代

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值