在Flink中,有两种类型的并行度:算子并行度(Operator Parallelism)和全局并行度(Global Parallelism)。
-
算子并行度(Operator Parallelism):
- 算子并行度指的是每个算子实例的并行度。在Flink中,每个算子(例如
map
、filter
等)都可以独立设置其并行度。这表示算子将会有多个并发的实例,每个实例处理输入数据的一个子集。你可以通过setParallelism
方法来设置算子的并行度。
DataStream<T> stream = ...; stream.map(new MyMapFunction()).setParallelism(4);
- 算子并行度指的是每个算子实例的并行度。在Flink中,每个算子(例如
-
全局并行度(Global Parallelism):
- 全局并行度是整个应用程序中并行度的一个全局设置。你可以通过
setParallelism
方法在执行环境或数据流上设置全局并行度。这会影响到所有算子,除非某个算子显式设置了自己的并行度。
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.setParallelism(3); DataStream<T> stream = ...; // 此处的 map 算子将会继承全局并行度,除非它自己显式设置了并行度 stream.map(new MyMapFunction());
- 全局并行度是整个应用程序中并行度的一个全局设置。你可以通过
总体而言,全局并行度是整个应用程序的默认并行度,而算子并行度是对某个具体算子的设置。算子并行度可以覆盖全局并行度,如果某个算子设置了独立的并行度,它将以自己的并行度为准。
标签:map,stream,并行度,setParallelism,算子,全局 From: https://www.cnblogs.com/guoyu1/p/18068298