flink的流式wordcount代码解析

(1)代码示例

 1 import org.apache.flink.streaming.api.scala._
 2 
 3 object StreamWordCount {
 4   def main(args:Array[String]):Unit={
 5     //创建流处理的执行环境
 6     val env=StreamExecutionEnvironment.getExecutionEnvironment;
 7 
 8     //接受一个socket文本流即创建数据源
 9     val dataStream=env.socketTextStream("localhost",7777);
10 
11     //对每条数据进行处理
12     val wordCountDataStream=dataStream.flatMap(_.split(" "))
13       .filter(_.nonEmpty)
14       .map(line=>(line,1))
15       .keyBy(line=>line._1)
16       .sum(1);
17    //输出结果,可以直接输出也可以将处理的结果存储到外部系统中如kafka
18     wordCountDataStream.print();
19     //flink的操作是惰性的,需要启动executor。
20     env.execute("stream WC job")
21   }
22 }

猜你喜欢

转载自www.cnblogs.com/hdc520/p/12968812.html