我在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 是不行的
以上就是并行度改为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
问题得已解决



