//运行环境 environment.execute(); 。。分点详细解释。。
时间: 2023-09-13 07:10:29 浏览: 44
`environment.execute()` 是 Flink 程序的执行入口,它会启动 Flink 的运行时环境。在 Flink 中,每个任务都会运行在 TaskManager 中,而一个 Flink 程序可以由多个任务组成。`environment.execute()` 会在 JobGraph 构建完成后提交给 JobManager,由 JobManager 对任务进行调度,并在 TaskManager 中启动任务的执行。
在 `environment.execute()` 执行之前,需要先配置好 Flink 程序的各种参数,例如并行度、状态后端、任务重启策略等等。可以通过 ExecutionEnvironment 来获取 Flink 程序的执行环境,并通过 ExecutionConfig 来配置各种参数。例如:
```
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(4);
env.setRestartStrategy(RestartStrategies.fixedDelayRestart(3, Time.of(10, TimeUnit.SECONDS)));
env.setStateBackend(new RocksDBStateBackend("hdfs://namenode:40010/flink/checkpoints"));
```
以上代码设置了 Flink 程序的并行度为 4,配置了一个重启策略,当任务失败时会重启 3 次,每次间隔 10 秒,还指定了一个 RocksDB 的状态后端用于状态的持久化。
在配置完成后,调用 `environment.execute()` 开始执行程序。在 Flink 程序的执行过程中,Flink 会自动将数据流划分为若干个 Task,每个 Task 由一个或多个算子组成,每个算子都会在 TaskManager 中运行。Flink 还提供了丰富的算子库和 API,方便用户进行数据转换、聚合、分组、窗口等操作。