在flink里面,我们编写了job之后,我们有时候需要了解下flink到底怎么执行的这个job。在原生的代码里面,我们写的代码量很少,很难看得出来具体的执行过程。所以在这里flink官方提供了一个可以直接可视化生成flink的任务执行计划图的工具,我们可以利用起来。例如我们举个例来说,以前面写的StreamWordCount为例,我们看下StreamWordCount 这个类的执行计划图是什么样子的?
通过这个我们可以看到他的执行情况。那么这个图怎么生成的呢?下面介绍下步骤。
一、在job里面添加代码,打印出来所有的算子信息
这个很简单,就是在代码里面添加一句:
System.out.println(environment.getExecutionPlan());
完整的示例如下:
二、运行此job
运行此job的main方法之后我们可以在控制台看到有输出
{
"nodes" : [ {
"id" : 1,
"type" : "Source: Custom Source",
"pact" : "Data Source",
"contents" : "Source: Custom Source",
"parallelism" : 1
}, {
"id" : 2,
"type" : "Flat Map",
"pact" : "Operator",
"contents" : "Flat Map",
"parallelism" : 16,
"predecessors" : [ {
"id" : 1,
"ship_strategy" : "REBALANCE",
"side" : "second"
} ]
}, {
"id" : 4,
"type" : "Window(TumblingProcessingTimeWindows(10000), ProcessingTimeTrigger, SumAggregator, PassThroughWindowFunction)",
"pact" : "Operator",
"contents" : "Window(TumblingProcessingTimeWindows(10000), ProcessingTimeTrigger, SumAggregator, PassThroughWindowFunction)",
"parallelism" : 16,
"predecessors" : [ {
"id" : 2,
"ship_strategy" : "HASH",
"side" : "second"
} ]
}, {
"id" : 5,
"type" : "Sink: Print to Std. Out",
"pact" : "Data Sink",
"contents" : "Sink: Print to Std. Out",
"parallelism" : 16,
"predecessors" : [ {
"id" : 4,
"ship_strategy" : "FORWARD",
"side" : "second"
} ]
} ]
}如图:
三、在flink官网生成执行计划图
3.1、访问flink的官网:https://flink.apache.org/visualizer/
在这里我们可以看到这个界面
3.2、把刚才获取到的算子json复制进去
3.3、点击Draw按钮生成执行计划图
此时关于StreamWordCount这个job的完整执行计划图就生成了,我们可以很直观的查看到完整的执行计划。







还没有评论,来说两句吧...