flink集群参数——如何设置

Posted

技术标签:

【中文标题】flink集群参数——如何设置【英文标题】:flink cluster params - how to set 【发布时间】:2016-02-08 22:52:09 【问题描述】:

我正在使用 Flink 进行一些概念验证工作,并且已经到了想要在 4 节点集群上尝试各种工作(拓扑?)的地步。

机器:

32核 96g 千兆内存

拓扑结构从 3 到 6 个“任务”不等(工人?螺栓模拟?)。我希望这里有人可以提供一些建议的设置。具体来说:

taskmanager.numberOfTaskSlots:将此设置为核心数? taskmanager.heap.mb:“这个值应该尽可能大。” 96Gb?真的吗? parallelism.default:尝试将其设置为 30。收到此错误1。 parallelization.degree.default:我尝试提高此值,但似乎没有任何效果。任务始终显示“1”表示并行度。 人们发现任何其他有用/有趣的设置?

特别是一项任务:从 Kafka 读取相关主题有 6 个分区。我想从这些分区中的每一个中读取、聚合和写入 Cassandra。当我在 Storm 中实现这项工作时,它需要 6 个螺栓来读取数据,而要写入的螺栓数量是其数倍。 (IE 6 读,18 写)

如果 Flink 被我的公司采用,每台机器都会同时运行大量的作业。在这种情况下,配置参数将如何变化?

FWIW:集群是 v1.0-SNAPSHOT。


编辑:This 似乎很有用。

1 "网络缓冲区数量不足:需要 30 个,但只有 8 个可用。网络缓冲区的总数当前设置为 2048。"这是否意味着在没有发生任何事情的情况下使用了 2000 个缓冲区?

【问题讨论】:

关于网络缓冲区的数量:这些是在提交流式数据流程序执行时保留的。它们是成功执行程序所需的最低要求,因此这基本上是程序开始时的安全检查。 【参考方案1】:

有多种来源可以帮助您设置正确的设置(见下文)

立即解决您的问题:

taskmanager.numberOfTaskSlots:将此设置为核心数?

taskmanager.heap.mb:“这个值应该尽可能大。” 96Gb?真的吗?基本上是的,但这取决于 如果您在集群中手动部署 Flink,则假定 Flink 是唯一运行的系统。如果你不使这个参数尽可能大,那将是一种浪费。对于与其他系统的共享设置,您可能需要考虑使用 YARN。另一方面,在独立集群模式下运行,您可能希望为操作系统保留一些内存,如果您知道还有其他组件在运行,您可能不会将所有内存分配给 Flink。但是,由于 Flink 内部管理内存,您应该避免使用未使用的内存。

parallelism.default:尝试将其设置为 30。出现此错误。查看以下配置参数: taskmanager.network.numberOfBufferstaskmanager.network.bufferSizeInBytes(也可以查看此处http://www.slideshare.net/FlinkForward/f***-hueske-juggling-with-bits-and-bytes?ref=http://flink-forward.org/?post_type=session,这里是http://de.slideshare.net/robertmetzger1/apache-flink-hands-on,这里是https://www.youtube.com/playlist?list=PLDX4T_cnKjD3F7oRSov8hT21rXx1SyXf8)

parallelization.degree.default:我尝试提高此值,但似乎没有任何效果。任务总是显示“1”表示并行。如果我没记错的话,这个参数被替换为parallelism.default

查看此链接了解更多背景信息:

https://flink.apache.org/faq.html#what-is-the-parallelism-how-do-i-set-it https://ci.apache.org/projects/flink/flink-docs-master/setup/config.html#common-options https://flink.apache.org/news/2015/05/11/Juggling-with-Bits-and-Bytes.html

还有一般常见问题解答、Flink 博客和 Flink Forward 讨论:

https://flink.apache.org/faq.html https://flink.apache.org/blog/ http://flink-forward.org/?post_type=session

【讨论】:

以上是关于flink集群参数——如何设置的主要内容,如果未能解决你的问题,请参考以下文章

Flink学习笔记03:将项目打包提交到Flink集群上运行(Java版)

flink yarn 集群的启动参数

Flink1.8 集群搭建完全指南(3):SASL的安装

大数据Flink进阶:Flink集群部署

集群中的 Apache Flink 流不会将作业与工作人员分开

Flink集群模式部署及案例执行