flink streamWordCount demo

本文介绍使用Apache Flink进行实时流处理的WordCount应用示例,详细展示了如何设置并行度,从socket接收数据,对数据进行切分、过滤、映射、分组及汇总操作,并最终打印结果。

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)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值