以下是个flink简化的例子,看flink的代码时有点疑问, env.execute(""),这句执行任务,是怎么跟上面的数据流text的相关操作关联起来的,看了半天源码终于有个大概的认识了。
public class SocketWindowWordCount {
public static void main(String[] args) throws Exception {
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
DataStream text = env.socketTextStream("localhost", 9000, "\n");
//对text各种操作,之后提交任务
DataStream> wordCounts = text .flatMap(new FlatMapFunction>() {
});
env.execute("Socket Window WordCount");
}
}
每个操作最后都会变为transform,加到transform列表里,代码如下:
提交任务的时候会构建streamgraph,构建streamgraph时会用到上面的transform列表,这样操作和提交任务就关联起来了。
网友评论