基于scala使用flink将kafka数据写入mysql示例

文章描述了如何使用ApacheFlink处理Kafka的ChangeRecord主题数据,每三分钟统计设备状态为预警且未处理的数据,并将结果追加写入MySQL表shtd_industry.threemin_warning_state_agg,同时备份到HBase。文中包含了Flink流处理设置、Kafka源创建、过滤、聚合操作以及数据库连接和数据写入的详细步骤。
摘要由CSDN通过智能技术生成

使用Flink消费Kafka中ChangeRecord主题的数据,统计每三分钟各设备状态为“预警”且未处理的数据总数。将结果存入MySQL的shtd_industry.threemin_warning_state_agg表(追加写入),表结构如下,同时备份到Hbase一份,表结构同MySQL表的。请在将任务启动命令截图,启动且数据进入后按照设备id倒序排序查询threemin_warning_state_agg表进行截图,第一次截图后等待三分钟再次查询并截图,将结果截图粘贴至对应报告中。


连接kafka

val kafkaSource=KafkaSource.builder()
      .setTopics("ChangeRecord")
      .setBootstrapServers("bigdata1:9092")
      .setValueOnlyDeserializer(new SimpleStringSchema())
      .setStartingOffsets(OffsetsInitializer.earliest())
      .build()

设置flink流处理环境

val env:StreamExecutionEnvironment=StreamExecutionEnvironment.getExecutionEnvironment
    env.setParallelism(1)

从kafka源创建数据流

val dataStream = env.fromSource(kafkaSource, WatermarkStrategy.noWatermarks(), "03")
  • formSource : 从外部数据源创建一个数据流
  • kafkaSource : kafka地址及配置
  • WatermarkStrategy.noWatermarks() : 不使用水印,用处理时间来处理数据
  • 03 : 船体给fromSource方法的第二个参数,表示消费组ID

指定kafka数据 并显示

 val transsformDataStream=dataStream
      .map(line => {
        val data = line.split(",")
        (data(1).toInt, da
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值