flink 的 wordCount 流式計算的demo
package com.hbn.wc
import org.apache.flink.api.scala._
import org.apache.flink.streaming.api.scala.{DataStream, StreamExecutionEnvironment}
object StreamWordCount {
def main(args: Array[String]): Unit = {
val env:StreamExecutionEnvironment = StreamExecutionEnvironment.createLocalEnvironment()
// 並行度
env.setParallelism(8)
val inputStream:DataStream[String] = env.socketTextStream("localhost",7777)
val result :DataStream[(String,Int)] = inputStream
.flatMap(_.split(" "))
.filter( _.nonEmpty)
.map((_,1))
.keyBy(0) // 以 第一個 字段 分組
.sum(1) // 以 第二個 字段 求和
result.print()
env.execute("stream word count job")
}
}
啓動後 執行結果 如圖所示
5> (you,1)
8> (ok,1)
4> (are,1)
6> (how,1)
5> (you,2)
4> (are,2)
5> (fine,1)
3> (hello,1)
7> (flink,1)
3> (hello,2)
2> (saprk,1)
3> (hello,3)