SparkSQL 学习笔记---SparkStreaming

一、大数据实时计算原理

SparkSQL 学习笔记---SparkStreaming_第1张图片

二、Spark Streaming

1、SparkStreaming简介

Spark Streaming是SparkCore API的一种扩展,可以用于进行大规模,高吞吐,容错的实时数据流的处理,支持从很多数据源中读取数据, 必粗Kafka,FlumeTwitter,ZeroMQ或者是TCP Socket。并且能够使用类似高阶函数的复杂算法来进行数据的处理,比如map、reduce、join、window。处理后的数据可以被保存到文件系统,数据库、Dashboard等存储中。
SparkSQL 学习笔记---SparkStreaming_第2张图片

2、SparkStreaming的基本工作原理

SparkStreaming内部的基本工作原理如下:接收实时输入数据流,然后将数据拆分成多个batch,比如没手机1s的数据封装为一个batch,然后将每个batch交给spark的计算引擎进行处理,最后会生产处一个结果数据流,其中的数据也是由一个一个的batch所组成的(一个batch里的数据其实就是一个RDD)。

SparkStreaming的基本工作原理

3、DStream

  • DStream的含义
    Spark Streaming提供了一种高级的抽象,叫做DStream,英文全称为Discretized Stream,中文翻译为“离散流”;
  • DStream的作用与创建
    它代表了一个持续不断的数据流。DStream可以通过输入数据源来创建,比如Kafak,Flume,Kinesis;也可以通过对其他DStream应用高阶函数来创建,比如map、reduce、join、window
  • DStream的本质
    DStream的内部,其实是一系列持续不断产生的RDD。RDD是Spark Core的核心抽象,即不可变的,分布式的数据集。DStream中的每个RDD都包含了一个时间段内的数据。
    在这里插入图片描述
  • DStream的底层原理
    对DStream应用的算子,比如map,其实在底层会被翻译为对DStream中每个RDD的操作。比如对一个DStream执行一个map操作,会产生一个新的DStream。但是在底层,其实其原理为,对输入DStream中每个时间段的RDD,都应用一遍map操作,然后生成的新的RDD,即作为新的DStream中的那个时间段的一个RDD。底层的RDD的transformation操作,其实,还可以由Spark Core的计算引擎来实现的。Spark Streaming对Spark Core进行了一层封装,隐藏了细节,然后对开发人员提供了方便易用的高层次的API。
    SparkSQL 学习笔记---SparkStreaming_第3张图片

你可能感兴趣的:(Spark)