Flink 资源占用评估

Flink 程序资源占用评估方法、Flink On Yarn启动脚本参数说明


  1. 程序最大并行度

    程序的最大并行度在 启动脚本 -p程序内指定的 parallelism 两者中取最大值

    程序需要的 Slot = 最大的 parallelism

    vcore = 程序需要的 Slot + 1( jobManager)

  2. -ys 数量(每个 taskmanager 的 Slot 数量)

    taskManager = 程序需要的 Slot / Slot (向上取整)

    container = taskManager + 1( jobManager)

    Allocate Memory = container * 3GB (这里的 3GB 是 yarn-site 配置的每个 container 内存大小)

启动主要脚本参数说明

1
2
3
4
5
6
-ys  yarn slots 指定每个 taskmanager 的 slots 数量
-p parallelism, it is the count the job be divided into. the count of subtask.(取max)(对应 vcore 数量 - 1
-yjm job manager 占用所在 container 的1G内存
-ytm task manager 占用所在 container 的1G内存
-c 指定主类
-ynm Yarn 上作业的名名字

demo

1
2
3
4
5
6
7
/opt/cloudera/parcels/FLINK/lib/flink/bin/flink run \
-yD env.java.opts="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8" \
-m yarn-cluster \
-ytm 16384 \
-ynm data-real-time-sink-doris \
-c org.app.SinkDorisApp \
/opt/realtime/flink-first-1.0-SNAPSHOT.jar

Task Manager 内存的分配计算可以使用以下 excel 进行计算预估

https://github.com/emerkfu/Flink-Memory-Compute/blob/main/%E5%86%85%E5%AD%98%E8%AE%A1%E7%AE%97.xlsx

Flink 内存分配