【问题标题】:Flink streaming parameters to tune?Flink流参数调优?
【发布时间】:2021-01-31 21:40:37
【问题描述】:
我目前正在从事一个名为 Automatic Tuning for Flink streaming framework 的项目。
基本上,我们的目标是创建一个模型(强化学习代理)来为 Flink 参数选择最佳值。这样的问题出现在 Spark 框架中,例如,选择正确的配置可能具有挑战性,如果没有正确执行,可能会对性能产生重大影响。
我想知道的是:
- 除了代码优化之外,Flink 的流式作业中是否有需要调整的参数?
- 是否有我们需要关注的、由专家创建的参数候选清单?
- 选择正确的参数是否需要可训练的模型(一个复杂的过程),或者它可能根本没有那么具有挑战性?
谢谢。
【问题讨论】:
标签:
apache-spark
spark-streaming
apache-flink
flink-streaming
flink-sql
【解决方案1】:
除了代码优化之外,还有一些参数在调整作业时应该考虑,这些参数主要是与状态、内存和检查点相关的参数。
但是,我认为没有一个列表可以描述调整时应考虑的所有参数。我首先要检查的是documentation。我会检查checkpointing、memory 和state backends 部分。也有很多关于 Flink 调优的介绍 你应该检查参数idea,试试this one。
设置适当的参数值可能非常特定于问题,特别是它可能特定于处理的数据量和状态大小,因此创建的模型必须考虑到这些。
【解决方案2】:
在某些情况下,有很多参数会对 Flink 应用程序的性能产生重大影响。但我不认为你可以训练一个模型来学习任何有用的东西。参数空间很大,在某些情况下帮助一个应用程序的更改可能甚至不会帮助同一应用程序在不同的上下文中运行(即,以不同的规模),更不用说证明对调整其他应用程序有用了。