官网:wiki消息实现timewindow的例子,及消息数据到kafka的例子

官网:wiki消息实现timewindow的例子,及消息数据到kafka的例子
位置:https://ci.apache.org/projects/flink/flink-docs-release-1.6/quickstart/run_example_quickstart.html

def main(args: Array[String]): Unit = {
val properties = new Properties()
    properties.setProperty("bootstrap.servers", "192.168.183.135:9092")
    properties.setProperty("zookeeper.connect", "192.168.183.135:2181")
    //properties.setProperty("group.id", "test")
    val env = StreamExecutionEnvironment.getExecutionEnvironment
    println(StreamExecutionEnvironment.getDefaultLocalParallelism)
    env.setParallelism(1)
   // val wiki = new WikipediaEditsSource()
    val wikisource = env.addSource(new WikipediaEditsSource)    //由于该类是java代码,无法隐式转换为scala代码
    wikisource.keyBy(x=>{
      (x,x.getUser)
    })
      .timeWindow(Time.seconds(30))
      //fold 算子 中文翻译折叠:源码中解释:针对每个窗口的每个execution进行操作。实际是有点像[spark中的fold](参见 spark分类中的《spark RDD》),针对value值进行操作。
      //初始值,对每个key生效一次(此说法不准确,请纠正),value就是针对value值的一些加减乘除等操作
      .fold(("-----------",0L))((x,y)=>(y.getUser+x._1,x._2+y.getByteDiff))
      .map(x=>x.toString())
      /**输出到kafka中
        * kafka-topics.sh --zookeeper 192.168.183.135:2181 --topic wiki_test --replication-factor 1 --partitions 1 --create
        *
        * kafka-console-producer.sh --broker-list 192.168.183.135:9092 --topic wiki_test
        *
        * kafka-console-consumer.sh  --bootstrap-server 192.168.183.135:9092 --topic wiki_test --from-beginning
        */
        //.print()
      .addSink(new FlinkKafkaProducer010[String]("wiki_test",new SimpleStringSchema(),properties))
    /**
      * 结果样例:
      * (04:2D80:C004:91EA:ED9E:E08F:A475:1380-----------,0)
      * (Zackmann08-----------,0)
      * (Funkymonkeyinthesun-----------,-1)
      * (Mzaru1-----------,947)
      * (Bot1058-----------,3)
      * (HBC AIV helperbot5-----------,-268)
      * (Colton Meltzer-----------,204)
      * (2.15.64.170-----------,2)
      * (SQLBot-----------,-182)
      */
    env.execute("wikiTest")
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ink__Bamboo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值