Yarn提交Flink任务参数修改
目的
Flink应用运行前,需要先提交Flink任务,向Yarn申请相关内存CPU等资源,提交任务命令为:yarn-session.sh -n 4 -s 64 -jm 5000 -tm 50000 -d;修改提交任务参数,调整并发及分配资源参数。
方法
参数 |
建议值 |
描述 |
---|---|---|
-n (taskmanager) |
节点数*(4-8)。 |
该参数为Flink的taskmanager数目,Flink引擎运行需要由一个jobmanager以及若干个taskmanager构成。每个taskmanager都是独立的一部分,当有Flink应用需要运行时,会被随机分配到一个taskmanager运行,所以taskmanager的数目增多,可以互不干扰的并行运行更多的Flink应用。但是很显然,集群中的资源是有限的,taskmanager越多,单个taskmanager能够分配的资源则越少,也会导致Flink性能下降。所以,推荐taskmanager数目可以取集群节点数*4 ~节点数*8。 |
-s (slot) |
根据实际场景配置。 |
该参数为单个taskmanager所拥有的槽位数,Flink任务提交后,集群中可以使用的总槽位数即为slot * taskmanager。一个slot可以为一个taskmanager提供1个并发,例如slot=30,即1个taskmanager最多可以跑30并发,当然实际运行的时候,也可以只跑20并发,那么此时剩余10个slot即为空闲。剩余未使用的slot,并不会占用CPU资源,但是会占用相关内存资源。该参数的修改,根据实际需要用到的并发度而动态调节。在内存足够的情况下,可以适当设置较大。 |
-tm(taskmanager memory) |
30000 |
该参数为分配给单个taskmanager的内存资源。只要taskmanager内存足够使用,内存资源分配增多对性能也无直接提高。可以在jobmanager内存分配之后,先将所有剩余内存分配给taskmanager。推荐分配30000MB左右即可。 |
-jm(jobmanager memory) |
5000 |
该参数为分配给jobmanager的内存资源。该参数对整体性能几乎无影响,不需要分配太大。推荐分配5000MB~15000MB即可。 |