

# 执行计划

> 译者：[flink.sojb.cn](https://flink.sojb.cn/)


根据各种参数（如数据大小或群集中的计算机数量），Flink的优化程序会自动为您的程序选择执行策略。在许多情况下，了解Flink将如何执行您的程序会很有用。

**计划可视化工具**

Flink附带了一个用于执行计划的可视化工具。包含可视化工具的HTML文档位于`tools/planVisualizer.html`。它采用作业执行计划的JSON表示，并将其可视化为具有执行策略的完整注释的图形。

以下代码显示了如何从程序中打印执行计划JSON：

*   [**Java**](#tab_java_0)
*   [**Scala**](#tab_scala_0)



```
final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

...

System.out.println(env.getExecutionPlan());
```





```
val env = ExecutionEnvironment.getExecutionEnvironment

...

println(env.getExecutionPlan())
```



要可视化执行计划，请执行以下 算子操作：

1.  `planVisualizer.html`使用Web浏览器**打开**
2.  将JSON字符串**粘贴**到文本字段中，然后
3.  **按下**绘图按钮。

完成这些步骤后，将显示详细的执行计划。

![flink作业执行图。](../img/plan_visualizer.png)

**Web界面**

Flink提供用于提交和执行作业的Web界面。该接口是JobManager的Web界面监测的一部分，每默认情况下，通过此接口端口8081作业提交运行要求您已经设置`web.submit.enable: true`在`flink-conf.yaml`。

您可以在执行作业之前指定程序参数。通过计划可视化，您可以在执行Flink作业之前显示执行计划。

