flink yarn 部署 并行度提不上去

项目场景:

我在flink项目调优时遇到 flink yarn 部署 并行度提不上去


问题描述

flink yarn 部署 并行度提不上去:

例如:bin/flink run -d -t yarn-per-job -p 2 \
-Drest.flamegraph.enabled=true \
-Djobmanager.memory.process.size=2048mb \
-Dtaskmanager.memory.process.size=4096mb \
-Dtaskmanager.numberOfTaskSlots=2 \
-c org.huangrui.flink.tuning.UvDemo Flink-tuning-1.0-SNAPSHOT.jar
是可行的

当 并行度大于3时,任务运行不起来

例如:bin/flink run -d -t yarn-per-job -p 4 \
-Drest.flamegraph.enabled=true \
-Djobmanager.memory.process.size=2048mb \
-Dtaskmanager.memory.process.size=4096mb \
-Dtaskmanager.numberOfTaskSlots=2 \
-c org.huangrui.flink.tuning.UvDemo Flink-tuning-1.0-SNAPSHOT.jar
是不行的

flink yarn 部署 并行度提不上去_第1张图片

flink yarn 部署 并行度提不上去_第2张图片
flink yarn 部署 并行度提不上去_第3张图片
以上就是并行度改为4的错误


原因分析:

以前总以为是flink-conf.yaml 中的 TaskSlots 太少不够用
其实不然从flink 1.12 版本开始 flink yarn 部署 就可以动态分配资源


解决方案:

yarn的资源不够引起的
flink-conf.yaml 中的 TaskSlots 改为原来的样子

# taskmanager.memory.flink.size: 1280m
# The number of task slots that each TaskManager offers. Each slot runs one parallel pipeline.
taskmanager.numberOfTaskSlots: 1
# The parallelism used for programs that did not specify and other parallelism.
parallelism.default: 1
bin/flink run -d -t yarn-per-job -p 5 \
-Drest.flamegraph.enabled=true \
-Djobmanager.memory.process.size=1024mb \
-Dtaskmanager.memory.process.size=2048mb \
-Dtaskmanager.numberOfTaskSlots=2 \
-c org.huangrui.flink.tuning.UvDemo Flink-tuning-1.0-SNAPSHOT.jar

在这里插入图片描述

flink yarn 部署 并行度提不上去_第4张图片
flink yarn 部署 并行度提不上去_第5张图片
问题得已解决

你可能感兴趣的:(Flink,flink,yarn)