微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

flink 的任务管理器和插槽数在纱线上的平衡是多少

如何解决flink 的任务管理器和插槽数在纱线上的平衡是多少

我在pre-job模式下在yarn上使用flink,yarn集群有500个vcore和2000G ram,flink app有大状态。 我想知道我应该如何设置插槽计数。设置大槽数和较少的 TaskManager 数,还是较少的槽数和大的 TaskManager 数?

示例:

  1. 为每个 TaskManager 设置 2 个插槽,纱线将运行 250 个 TaskManager。
  2. 为每个 TaskManager 设置 50 个插槽,纱线将运行 10 个 TaskManager。

一个会有连击表现?

解决方法

这取决于。部分取决于您使用的状态后端,以及“更好的性能”对您的应用程序意味着什么。您运行的是批处理工作负载还是流式工作负载也会有所不同,而且作业的拓扑结构也可能是一个因素。

如果您使用 RocksDB 作为状态后端,那么使用更少、更大的任务管理器可能是可行的方法。有了堆上的状态,较大的任务管理器更有可能因显着的 GC 暂停而中断处理,这就需要有更多、更小的 TM。但这主要影响流式作业的最坏情况延迟,因此如果您正在运行批处理作业,或者只关心流式吞吐量,那么这可能不值得考虑。

可以优化同一 TM 中槽之间的通信,但如果您的工作不进行任何槽间通信,则这不是一个因素。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。