Spark Structured Streaming 实时解析mr 任务

     Structured Streaming 是spark2.x后引入的实时计算框架。spark一直以来都是以微批来处理数据的,一直做不到毫秒级的实时处理,structured streaming最开始引入时也是用的微批处理数据,spark2.3后面引入了一个新的处理模式真正实现了实时计算,可以实现毫秒级的处理速度。structured streaming 实现了exactly-once ,这个一直被人诟病和拿来和flink比较。spark 和 flink 都是非常优秀的流计算处理框架,两者都在互相学习。flink 被阿里接手后,在国内现在变得非常火。

      一直想写个实时解析mr任务信息的程序,最近抽时间拿 structured streaming 练手用scala实现了个demo,其中解析历史任务的代码是从dr.elephant源码中提取出来修改的。

    val spark = SparkSession.builder.appName("analysis-job").getOrCreate()
    val  df =  spark.readStream.format("kafka")
           .option("kafka.bootstrap.servers", "xxxxx:9092")
           .option("subscribe", "job1")
           .option("startingOffsets", "earliest")
           .load()
    import spark.implicits._
//    implicit val mapEncoder = org.apache.spark.sql.Encoders.kryo[MrJobData]
    val ds = df.selectExpr( &#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值