flink 配置优先级
时间: 2023-11-21 13:57:56 浏览: 327
Flink的配置优先级从高到低依次为:算子级别 > 执行环境级别 > 提交任务级别 > 系统配置级别。具体来说,如果在不同级别的配置中出现了相同的配置项,则会按照上述优先级顺序进行覆盖。例如,如果在算子级别和执行环境级别都配置了相同的参数,则算子级别的配置会覆盖执行环境级别的配置。
下面是一个示例,展示了如何在Flink中设置不同级别的配置:
1. 在算子级别设置配置:
```java
DataStream<Integer> dataStream = env.fromElements(1, 2, 3);
dataStream.map(new RichMapFunction<Integer, Integer>() {
@Override
public void open(Configuration parameters) throws Exception {
super.open(parameters);
// 在算子级别设置配置
getRuntimeContext().getExecutionConfig().setAutoWatermarkInterval(1000L);
}
@Override
public Integer map(Integer value) throws Exception {
return value;
}
});
```
2. 在执行环境级别设置配置:
```java
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// 在执行环境级别设置配置
env.getConfig().setAutoWatermarkInterval(2000L);
DataStream<Integer> dataStream = env.fromElements(1, 2, 3);
dataStream.map(new MapFunction<Integer, Integer>() {
@Override
public Integer map(Integer value) throws Exception {
return value;
}
});
```
3. 在提交任务级别设置配置:
```shell
./bin/flink run -DautoWatermarkInterval=3000 examples/streaming/SocketWindowWordCount.jar
```
4. 在系统配置级别设置配置:
在Flink的配置文件flink-conf.yaml中设置配置项,例如:
```yaml
execution.checkpointing.interval: 10000
```
阅读全文