spark读取kafka数据_大数据系列之Spark Streaming和Structured Streaming对比

本文对比了Spark Streaming和Structured Streaming在流模型、API使用、时延性能及对接Kafka方面的特点。Spark Streaming采用微批次处理,Structured Streaming则以连续追加表的形式处理实时数据。Structured Streaming具有更低的时延,并提供了更简洁的API。两者都支持从Kafka读取数据,但Structured Streaming的对接更为直接。
摘要由CSDN通过智能技术生成

本文对Spark Streaming和Structured Streaming在流模型、API使用、时延性能以及和Kafka对接等方面进行了对比,如下表所示:

86559e9374369d4b9c7f24b6003e890a.png


1、流模型
  • Spark Streaming

Spark Streaming使用“微批次”的架构,把流式计算当作一系列连续的小规模批处理来对待。Spark Streaming从各种输入源中读取数据,并把数据分组为小的批次,新的批次按均匀的时间间隔创建出来。在每个时间区间开始的时候,一个新的批次就创建出来,在该区间内收到的数据都会被添加到这个批次中。在时间区间结束时,批次停止增长。时间区间的大小是由批次间隔这个参数决定的,批次间隔一般设在500毫秒到几秒之间,由应用开发者配置。每个输入批次都形成一个RDD,以Spark作业的方式处理并生成其他的RDD。处理的结果可以以批处理的方式传给外部系统。

94701d23587d066a114eb04cf8092fd7.png

  • Structured Streaming

Structured Streaming中的关键思想是将实时数据流当作可以连续追加的表,这样可以将流计算以静态表的方式进行处理。

309da53f2bf2f9c4e5ebd76d3de134fd.png

在Structured Streaming中将input data stream作为“input table”,对input table查询会生成一个“result table”。在每次查询时候,新的记录会追加到input table中,同时也会更新到Result Table中,当result table更新的时候,这些更新的数据需要写到外部存储中。

da8bd6e1d4a1388c15efdeccf915f074.png

Output有不同的模式:

  1. Complete mode:整个更新的result table写到外部存储

  2. Append mode:上一次写入以来新的追加数据写到外部存储

  3. Update mode:上一次写入以来新的更新数据写到外部存储

2、API使用
2.1 Spark Streaming API使用

1)Input Streaming

Spark Streaming有两种内置的Streaming源:

  • Basic source:StreamingContext API可用的源,比如文件系统、socket连接

  • Advanced source:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值