当前位置:   article > 正文

flink算子的并行度设置方法_flink setparallelism

flink setparallelism

#flink算子的并行度设置方法

并行度(Parallelism)是flink中一个非常重要的概念,它主要是指一个算子可以被分的子任务数,通常越高就意味着算子计算速度越快。

在这里插入图片描述

如上图所示,map()算子的并行度为2,window()算子的并行度也为2,也可以说整个数据流的并行度就是2。并行度的设置方式有很多,可以总结为以下四种:

1.在算子操作后设置(优先级最高)

在我们设计一系列算子时,我们可以在算子后调用 setParallelism()方法,它只能决定当前算子的并行度,其他算子不受影响。

stream.map(word -> Tuple2.of(word, 1L)).setParallelism(2);
  • 1

此时map算子的并行度为2,它的并行度不受后三种配置方法的影响。

2.在创建执行环境后设置(优先级仅低于第一种设置方法)

在每次编写flink代码时,都需要先创建执行环境。在创建完执行环境后就可以进行一系列的设置,其中就包括并行度设置,示例代码如下:

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(2);
  • 1
  • 2

这种方式是全局并行度设置,一般不是很推荐,原因在于如果直接将所有算子都设置相同的并行度,会导致无法动态扩容,所有设置都硬编码在程序中不是一个好的选择。

3.在提交任务时设置(优先级低于方法1和方法2)

在提交任务时,一般可以设置一些必要的参数,其中-p选项可以设置全局并行度,方法如下:

bin/flink run –p 4 –c com.flink.MyStreamWordCount ./LearnFlink-1.0-SNAPSHOT.jar
  • 1

这里将全局并行度设置为4,这种方法也可以在Web UI中使用。如下图所示:
在这里插入图片描述
4.直接使用集群的默认并行度(优先级最低)

在集群配置文件conf/flink-conf.yaml 中直接更改默认并行度:

parallelism.default: 2
  • 1

这个设置对于整个集群上提交的所有作业有效,初始值为 1。只有当前三中配置都不存在时,才会采用该配置。如果该配置文件不存在,就会默认将cpu的核心数作为默认并行度。

总结:

四种配置方式优先级如下:

算子操作后设置 > 创建执行环境后设置 > 提交任务时设置 > 使用集群的默认并行度

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/288420?site
推荐阅读
相关标签
  

闽ICP备14008679号