欢迎光临
flink算子的并行度设置方法
   

flink算子的并行度设置方法

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

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

flink算子的并行度设置方法,在这里插入图片描述,第1张

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

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

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

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

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

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

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

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

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

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

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

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

这里将全局并行度设置为4,这种方法也可以在Web UI中使用。如下图所示:

flink算子的并行度设置方法,在这里插入图片描述,第2张

4.直接使用集群的默认并行度(优先级最低)

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

parallelism.default: 2

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

总结:

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

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

 
 校运会稿件  喇叭花的特点形状  迢迢牵牛星皎皎河汉女  勋章花有毒吗  微信鲜花小镇七夕玫瑰  不近女色 
打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《flink算子的并行度设置方法》
文章链接:https://goodmancom.com/wl/175810.html