Apache flink Flink优化器如何决定并行性?

Apache flink Flink优化器如何决定并行性?,apache-flink,Apache Flink,下面是一张关于Flink优化器的幻灯片,这是我在一次演示中看到的。我对Flink的优化器根据所提供数据集的基数决定并行性的评论感到特别困惑。 我目前正在浏览Flink 1.4(我正在使用的版本)文档,我似乎找不到任何关于Flink关于并行性的决定的文档我是否需要向Flink的optimizer提供有关数据集的统计信息以利用此功能? 另一方面,我认为通过指定maxParallelism值,这可能使Flink能够自动动态地确定所提供的数据集适合的并行级别(如上所述)。但是,我无法指定Flink 1

下面是一张关于Flink优化器的幻灯片,这是我在一次演示中看到的。我对Flink的优化器根据所提供数据集的基数决定并行性的评论感到特别困惑。

我目前正在浏览Flink 1.4(我正在使用的版本)文档,我似乎找不到任何关于Flink关于并行性的决定的文档我是否需要向Flink的optimizer提供有关数据集的统计信息以利用此功能?

另一方面,我认为通过指定maxParallelism值,这可能使Flink能够自动动态地确定所提供的数据集适合的并行级别(如上所述)。但是,我无法指定Flink 1.4文档中指定的最大并行度,这就是为什么我无法验证我的假设。对于某些上下文,我使用的是DataSet API如何指定Flink中的最大并行度?

ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
env.setMaxParallelism(20); // can't seem to call this method on env

不确定您是在哪里找到此演示文稿的,但它非常古老,可能是2014年或2015年初

本幻灯片讨论了Flink数据集API的优化器。优化器不用于优化DataStream API程序。另一方面,最大并行度的设置仅适用于DataStream API程序,而不适用于DataSet程序

引用的这句话位于“目标:数据处理计划的有效执行计划”的要点下。并非所有的子点都已实现,包括执行并行性的自动配置


包括将DataSet API集成到DataStream API中并删除优化器的计划。Flink的Table API/SQL将继续使用基于成本的优化器(基于Apache Calcite),并且将来可能还会配置执行并行性。

能否共享指向演示文稿的链接?更多的语境会有帮助,而且听起来很有趣。