大数据课程L6——网站流量项目的SparkStreaming

文章作者邮箱:[email protected]              地址:广东惠州

 ▲ 本章节目的

⚪ 了解网站流量项目的SparkStreaming概述;

⚪ 掌握网站流量项目的SparkStreaming实现 Wordcount 底层流程;

⚪ 掌握网站流量项目的SparkStreaming实现历史批次的累积处理;

⚪ 掌握网站流量项目的SparkStreaming滑动窗口机制;

⚪ 掌握网站流量项目的SparkStreaming入门练习;

一、 SparkStreaming概述

1. SparkStreaming概述

Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力,以吞吐量高和容错能力强著称。

目前做实时流计算的框架:

1. Storm。

2. SparkStreaming。

3. Flink。

大数据课程L6——网站流量项目的SparkStreaming_第1张图片

上图可以理解为 SparkStreaming 可以接收多种数据源数据,比如主流的 Kafka,然后经过 SparkStreaming 处理,将结果存到其他的应用系统中,比如 MySQL,HBase 等。

2. SparkStreaming实施流计算的过程

大数据课程L6——网站流量项目的SparkStreaming_第2张图片

上图所示,为 SparkStreaming 实时流计算的过程。我们总结如下知识点:

1. SparkStreaming 接收连续不断的数据流,然后将数据流离散化成一批一批的数据,然后底层是以批为单位进行处理。

2. SparkStreaming 的批大小由程序员自定义,单位是时间,比如秒或毫秒。所以每一批中的数据量是不尽相同的。

3. 由上述机制,决定了 SparkStreaming 在实时流处理过程中,吞吐量比较高(以批为单位进行处理),但是不能做到低延迟。

4. SparkStreaming 中的每一批数据,称为 DStream(离散化的数据流 Discretized-Stream)。

5. SparkStreaming 就是对每个 DStream 进行计算处理。DStream 底层就是一个 RDD。所以表面上是对 DStream 操作,但是底层仍然会转为对 RDD 的操作。即以往所学的 RDD 的操作,比如:map,flatMap,filter,reduceByKey 都可以用于 DStream。

6. 因为底层会转为 RDD 的操作,所以 SparkStreaming 在做流处理时,有天然的容错性保证。这是由 RDD 的容错机制来决定的。

3. 架构设计

SparkStreaming是一个对实时数据流进行高通量、容错处理的流式处理系统,可以对多种数据源(如Kafka、Flume、Twitter、ZeroMQ和TCP 套接字)进行类似Map、Reduce和Join等复杂操作,并将结果保存到外部文件系统、数据库或应用到实时仪表盘。

大数据课程L6——网站流量项目的SparkStreaming_第3张图片

Spark Streaming是将流式计算分解成一系列短小的批处理作业,也就是把Spark Streaming的输入数据按照batch size(如1秒)分成一段一段的数据DStream(Discretized-离散化 Stream),每一段数据都转换成Spark中的RDD(Resilient Distributed Dataset),然后将Spark Streaming中对DStream的Transformations操作变为针对Spark中对RDD

你可能感兴趣的:(大数据)