Flink Solt优化需求与方案

举报
FI小粉丝 发表于 2021/11/27 17:22:02 2021/11/27
【摘要】 需求描述Slot可以认为是taskmanager上面一块独立分配的资源,是taskmanager并行执行的能力的体现。Taskmanager中有两种使用slot的方法:一个taskmanager中设置了一个slot。一个taskmanager中设置了多个slot。每个task slot 表示TaskManager 拥有资源的一个固定大小的子集。假如一个taskManager 有三个slot,...

需求描述

Slot可以认为是taskmanager上面一块独立分配的资源,是taskmanager并行执行的能力的体现。Taskmanager中有两种使用slot的方法:

  • 一个taskmanager中设置了一个slot。
  • 一个taskmanager中设置了多个slot。

每个task slot 表示TaskManager 拥有资源的一个固定大小的子集。假如一个taskManager 有三个slot,那么它会将其管理的内存分成三份给各个slot。资源slot化意味着一个subtask 将不需要跟来自其他job 的subtask 竞争被管理的内存,取而代之的是它将拥有一定数量的内存储备。需要注意的是,这里不会涉及到CPU 的隔离,slot 目前仅用来隔离task 的受管理的内存。通过调整task slot 的数量,允许用户定义subtask 之间隔离的方式。如果一个TaskManager 一个slot,那将意味着每个task group运行在独立的JVM 中(该JVM可能是通过一个特定的容器启动的),而一个TaskManager 多个slot 意味着更多的subtask 可以共享同一个JVM。而在同一个JVM 进程中的task 将共享TCP 连接(基于多路复用)和心跳消息。它们也可能共享数据集和数据结构。因此,对于资源密集型任务(尤其是对cpu使用较为密集的)不建议使用单个taskmanager中创建多个slot使用,否则容易导致taskmanager心跳超时,出现任务失败。如果需要设置单taskmanager多slot,参考如下操作。

单taskmanager多slot的设置方法

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

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

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

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

单taskmanager多slot需要优化哪些参数

设置单taskmanager多slot需要优化以下参数

参数名称

默认值

意义与调整建议

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会均分启动内存

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。