根据集群中数据大小、机器数目等多种参数,Flink的优化器会自动的为程序选择一种执行策略。在很多场景下, 这将有利于知晓Flink如何执行你的程序。
计划可视化工具
Flink自带了执行计划的可视化工具。visualizer工具的HTML文档位于tools/planVisualizer.html
。
它通过一个JSON文件来表示job的执行计划的,并将执行计划可视化,同时带有执行策略的全部注解。
如下的代码展示了如何打印程序执行计划的JSON:
final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
...
System.out.println(env.getExecutionPlan());
val env = ExecutionEnvironment.getExecutionEnvironment
...
println(env.getExecutionPlan())
为了可视化执行计划,需要做如下步骤:
planVisualizer.html
,完成以上步骤后,一个详细的执行计划将会被直观的展示。
Web接口
Flink 提供了一个web接口用于提交和执行jobs。接口是JobManager监控web接口的一部分,默认运行在8081端口。
通过这个接口提交的job需要在flink-conf.yaml
文件中设置参数jobmanager.web.submit.enable: true
。
你可以在job执行前指定程序的参数。可视化的执行计划将使你在job执行前就知晓具体的执行计划。