flink单task多slot调优

南墨2年前技术文章1167

1. taskmanagerslot的设置方法

方式一:在配置文件中配置taskmanager.numberOfTaskSlots,通过修改提交任务的客户端配置文件中的配置flink-conf.yaml配置,如下图:将该值设置为需要调整的数值即可

1.png

方式二:启动命令的过程中使用-ys命令传入,例如:以下命令

./flink run -m yarn-cluster -p 1 -ys 3 ../examples/streaming/WindowJoin.jar

在启动后在一个taskmanager中会启动3个slot。

2. taskmanagerslot需要优化哪些参数

参数名称

默认值

意义与调整建议

yarn.containers.vcores

1

每个taskmanager(也就是container)内部需要启动使用的vcore得到数量

配置建议:与配置的slot数量相同一致

taskmanager.network.netty.server.numThreads

1(如果配置为-1,则默认跟slot数量保持一致)

Taskmanager作为服务端,并行线程数通道数量

配置建议:与配置的slot数量相同一致

taskmanager.network.netty.client.numThreads

1(如果配置为-1,则默认跟slot数量保持一致)

Taskmanager作为客户端,并行线程数通道数量

配置建议:与配置的slot数量相同一致

taskmanager.network.netty.num-arenas

1(如果配置为-1,则默认跟slot数量保持一致)

Netty域的数量

配置建议:与配置的slot数量相同一致

taskmanager.network.memory.max

1G

Netty使用的缓存数量的最大值,通常情况下随着slot数量增加,netty线程数量增加,那么缓存数据的量会越来越多此时需要增加这个缓存的数量。

配置建议:2G以上,如果

增加taskmanager的启动内存,即-yjm

跟slot数量保持一致

一个taskmanager在启动后,如果设置了多个slot,每个slot会均分启动内存


相关文章

kafka文件存储机制

kafka文件存储机制

Topic 数据的存储机制       Topic是逻辑上的概念,而partition是物理上的概念,每个partition对应于一个log文件,该log文件中存储的就是Producer生产的数据。P...

Python Web 自动化测试工具 — Selenium

Selenium 是一个 Web 自动化测试工具,Selenium 通过非常简洁方便的 API,使用 Selenium WebDrivers(Selenium web 驱动器)像使用 Firefox,...

Golang 垃圾回收

Golang 垃圾回收

1、标记清除算法Golang 使用标记清除算法作为垃圾回收器的一部分。标记清除算法是一种常见的垃圾回收算法,它通过标记和清除未被引用的对象来回收内存空间。Golang 中,垃圾回收器会定期扫描堆空间,...

Kubevela源码解读(一):application_controller解读

application_controller是kubevela最主要的一个控制器,作用就是将用户创建的applicaion转化为实际需要创建的资源对象,通过本文可以:1、了解cue模版在kubevel...

通过Nodeport方式暴露集群

通过Nodeport方式暴露集群

一、原理图二、通过deployment部署双副本nginx,两个Pod[root@172-16-121-211 ~]# cat nginx-delpayment01.yml apiVersion: a...

K8s数据持久化

K8s数据持久化

一、为什么需要持久化为了解决pod里面的容器被删除后数据不丢失,则引入了存储类型,类似于docker中的数据卷。在kubernetes集群中,其是支持多种存储类型,包括但不限于emptyDir,Hos...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。