是的,可以通过配置FlinkOnYarn的模式来使用YARN的CGroup进行CPU隔离。具体操作可以参考官方文档。
使用FlinkOnYarn模式配置YARN的CGroup进行CPU隔离的成功案例
背景介绍
在大数据处理中,为了提高资源利用率和系统性能,通常需要对不同任务进行CPU隔离,FlinkOnYarn是Apache Flink在YARN上的运行模式,可以通过配置YARN的CGroup来实现CPU隔离,本文将介绍一个成功配置FlinkOnYarn模式下YARN的CGroup进行CPU隔离的案例。

环境准备
1、操作系统:CentOS 7.2
2、JDK版本:1.8.0_191
3、Apache Flink版本:1.10.0
4、YARN版本:3.1.0
配置步骤
1、安装并配置Java环境
2、下载并解压Apache Flink
3、配置Flink的配置文件flinkconf.yaml

4、配置YARN的CGroup
5、启动FlinkOnYarn作业
详细操作
1、安装并配置Java环境
安装JDK 1.8.0_191
设置JAVA_HOME环境变量
配置PATH环境变量
2、下载并解压Apache Flink

下载Apache Flink 1.10.0版本
解压到指定目录,/opt/flink
3、配置Flink的配置文件flinkconf.yaml
设置jobmanager和taskmanager的相关参数,jobmanager.rpc.address、taskmanager.numberOfTaskSlots等
设置yarn相关参数,yarn.applicationmaster、yarn.deploymentmode等
设置cgroup相关参数,yarn.cgroups.cpu、yarn.cgroups.memory等
4、配置YARN的CGroup
安装cgroup工具包,libcgrouptools
创建CGroup配置文件,/etc/cgconfig.conf,内容如下:
```
fs.filemax = 1000000000
memory {
memory.limit_in_bytes = 4294967296 # 4GB
}
cpu {
cpu.shares = 2048 # CPU权重为2048,表示每个容器可以使用2个CPU核心
}
task {
task.weight = 100 # 任务权重为100,表示该任务可以使用总CPU资源的1%
}
```
创建CGroup文件,/sys/fs/cgroup/memory和/sys/fs/cgroup/cpu,并将CGroup配置文件中的配置项写入相应的文件中。
修改YARN的启动脚本,将CGroup的配置参数传递给Flink,具体操作如下:
找到YARN的启动脚本,/usr/lib/hadoopyarn/bin/yarndaemon.sh(根据实际安装路径而定)
在脚本中找到启动ApplicationMaster的命令行参数部分,添加以下参数:
```
containerized <container_executor>
cgroups <path_to_cgroup_configuration>
```
保存并退出脚本。
5、启动FlinkOnYarn作业
进入Flink的bin目录,/opt/flink/bin
执行以下命令启动FlinkOnYarn作业:
```
./flink run m yarncluster yn <num_of_yarn_workers> ys <yarn_session_timeout> yjm <jobmanager_memory> ytm <taskmanager_memory> qu <queue_name> <flink_job_jar> <args>
```
<num_of_yarn_workers>表示YARN工作节点的数量,<yarn_session_timeout>表示YARN会话超时时间,<jobmanager_memory>和<taskmanager_memory>分别表示JobManager和TaskManager的内存大小,<queue_name>表示YARN队列名称,<flink_job_jar>表示Flink作业的JAR包路径,<args>表示Flink作业的其他参数。