赞
踩
flink taskmanager任务运行时的内存模型如下:
可以看到flink taskmanager任务内存主要分为两大块,一个是flink框架和任务本身的内存,一个是jvm本身的内存开销。
taskmanager.memory.process.size 这个配置是配置flink taskmanager任务的总内存,里面各个区域的内存划分flink框架会根据默认比例进行划分,但有时候默认的划分并不能满足我们的需求,容易造成内存和计算资源浪费。
下面将介绍flink taskmanagr各个组件的详细内存调优。taskmanager内存介绍可以参考这篇文章flink任务内存调优,TaskManager、JobManager内存配置_大数据摸鱼的博客-CSDN博客
flink on yarn-pre-job任务提交参数如下:
- flink run -t yarn-per-job \
- -c com.Test \
- -Dpipeline.name="flink test job" \
- -Dyarn.application.name="flink test job" \
- -Dtaskmanager.memory.process.size="2048m" \
- -Dtaskmanager.memory.framework.heap.size="128m" \
- -Dtaskmanager.memory.task.heap.size="640m" \
- -Dtaskmanager.memory.managed.size="768m" \
- -Dtaskmanager.memory.framework.off-heap.size="128m" \
- -Dtaskmanager.memory.network.max="64m" \
- -Dtaskmanager.memory.jvm-metaspace.size="128m" \
- -Dtaskmanager.memory.jvm-overhead.max="192m" \
- -Djobmanager.memory.process.size="700m" \
- -Dclassloader.resolve-order="parent-first" \
- -Dyarn.application.queue="other" \
- -Dstate.checkpoints.dir="hdfs:///flink/checkpoints" \
- /app/test.jar
参数说明:
taskmanager.memory.process.size taskmanager总内存设置为2048m
taskmanager.memory.framework.heap.size flink框架堆内存128m
taskmanager.memory.task.heap.size 用户代码运行堆内存640m
taskmanager.memory.managed.size 用于hash排序的内存768m
taskmanager.memory.framework.off-heap.size flink框架本身堆外内存128m
taskmanager.memory.network.max 最大网络缓存内存64m
taskmanager.memory.jvm-metaspace.size jvm内存128m
taskmanager.memory.jvm-overhead.max jvm最大内存192m
jobmanager.memory.process.size jobmanager内存设置为700m
yarn-application内存参数调优基本和yarn-pre-job模式一样,只是yarn-application模式需要把用户的jar包传到hdfs上。其运行指令如下
- flink run-application -t yarn-application \
- -c com.Test \
- -Dpipeline.name="flink test job" \
- -Dyarn.application.name="flink test job" \
- -Dtaskmanager.memory.process.size="2048m" \
- -Dtaskmanager.memory.framework.heap.size="128m" \
- -Dtaskmanager.memory.task.heap.size="640m" \
- -Dtaskmanager.memory.managed.size="768m" \
- -Dtaskmanager.memory.framework.off-heap.size="128m" \
- -Dtaskmanager.memory.network.max="64m" \
- -Dtaskmanager.memory.jvm-metaspace.size="128m" \
- -Dtaskmanager.memory.jvm-overhead.max="192m" \
- -Djobmanager.memory.process.size="700m" \
- -Dclassloader.resolve-order="parent-first" \
- -Dyarn.application.queue="other" \
- -Dstate.checkpoints.dir="hdfs:///flink/checkpoints" \
- hdfs:///app/test.jar
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。