首页 理论教育 SparkStreaming简介和应用

SparkStreaming简介和应用

时间:2023-06-25 理论教育 版权反馈
【摘要】:Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。Spark Streaming是Spark核心API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。图4.1 伯克利数据分析协议栈官网提供的Spark Streaming处理的数据流如图4.2所示。官网上给出Spark Streaming的内部处理机制流程如图4.3所示。图4.3 Spark Streaming的内部处理机制流程图对DStream的操作会对应到DStream底层的RDD序列的操作,内部的处理机制可以用图4.4描述。

SparkStreaming简介和应用

Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。对应在伯克利数据分析协议栈中的位置如图4.1所示。

Spark Streaming是Spark核心API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。支持从多种数据源获取数 据,包 括Kafka、Flume、Twitter、Ze-roMQ、Kinesis以及TCP sockets,从数据源获取数据之后,可以使用诸如map、reduce、join和window等高级函数进行复杂算法的处理。最后还可以将处理结果存储到文件系统,数据库和现场仪表盘上。在“One Stack rule them all”的基础上,还可以使用Spark的其他子框架,如集群学习、图计算等,对流数据进行处理。

978-7-111-51909-6-Chapter04-1.jpg

图4.1 伯克利数据分析协议栈

官网提供的Spark Streaming处理的数据流如图4.2所示。

978-7-111-51909-6-Chapter04-2.jpg

图4.2 Spark Streaming的数据流图

Spark的各个子框架,都是基于核心Spark的,Spark Streaming在内部的处理机制是,接收实时流的数据,并根据一定的时间间隔拆分成一批批的数据,然后通过Spark Engine处理这些批数据,最终得到处理后的一批批结果数据。

对应的批数据,在Spark内核对应一个RDD实例,因此,对应流数据的DStream可以看成是一组RDD,即RDD的一个序列。通俗点理解的话,在流数据分成一批一批后,通过一个先进先出的队列,然后Spark Engine从该队列中依次取出一个个批数据,把批数据封装成一个RDD,然后进行处理,这是一个典型的生产者-消费者模型,对应的就有生产者-消费者模型的问题,即如何协调生产速率和消费速率。(www.xing528.com)

官网上给出Spark Streaming的内部处理机制流程如图4.3所示。

978-7-111-51909-6-Chapter04-3.jpg

图4.3 Spark Streaming的内部处理机制流程图

对DStream的操作会对应到DStream底层的RDD序列的操作,内部的处理机制可以用图4.4描述。

978-7-111-51909-6-Chapter04-4.jpg

图4.4 DStream内部的处理机制

作用在DStream上的API,在内部,实际上是作用到这个RDD序列上。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈