一起学习Spark(十一)Structured Streaming与Spark Streaming的取舍

Spark Streaming概念特性介绍

通过之前的文章我们了解了Structured Streaming是建立在SparkSQL引擎之上的可伸缩和高容错的流式处理引擎,那么Spark Streaming又是何方神圣呢?Spark Streaming 是Spark核心API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。支持从多种数据源获取数据,包括Kafka、Flume、以及TCP socket等,从数据源获取数据之后,可以使用诸如map、reduce和window等高级函数进行复杂算法的处理。最后还可以将处理结果存储到文件系统和数据库等

Spark Streaming处理的数据流图:
Spark Streaming

     Spark Streaming接收流式数据,并根据一定的时间间隔拆分成一批批batch数据,用抽象接口DStream表示(DStream可以看成是一组RDD序列,每个batch对应一个RDD),然后通过Spark引擎处理这些batch数据,最终得到处理后的一批批结果数据。处理过程的流程图如下:

 

Spark Streaming

Structured Streaming相比Spark Streaming的优势:

1.支持1ms延迟级别的实时流,Spark2.3之后引入了实时流处理模式,虽然还处在实验阶段,但不久之后完全可以期待达到大规模使用的程度。

2.与离线计算API的统一,DStream 和 RDD 看起来很相似,但其实是两个不同的东西,DStream是对RDD在流式计算的里的Wrap。所以流式和批处理,你其实比较难复用的。但是在Structured Streaming中,都是对Dataframe/DataSet的操作,复杂逻辑处理会很容易的在批处理和流式计算中复用。

3.同样能支持Spark Streaming的输入源于输出接收器。

4.Spark Streaming已经进入维护状态,基本不再更新。

5.基于事件时间,相比于Spark Streaming更符合业务场景,处理更精确。

6.解决了Spark Streaming存在的代码升级,DAG图变化引起的任务失败,无法断点续传的问题(Spark Streaming的硬伤!!!)

总结

就像RDD与DataSet一样,Spark的新版本虽然还兼容RDD和Spark Streaming的使用,但官方一定希望我们去积极尝试新事物,更多去使用升级版的DataSet与Structured Streaming,所以我这个系列里也要跟上Spark官方的节奏,关于Spark Streaming的就鸽了,不再深入去剖析。也希望大家在新项目上更多拥抱新组件新特性,不辜负官方的良苦用心。

 

 

 

最后,新年快乐!米娜桑。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值