美文网首页
Spark Steaming Abstract

Spark Steaming Abstract

作者: 右左君 | 来源:发表于2018-07-07 19:17 被阅读0次

    Spark Steaming Abstract

    Spark Streaming 是 Spark Core API 的扩展,它支持弹性的,高吞吐的,容错的实时数据流的处理。
    数据源支持:

    • Kafka
    • Flume
    • HDFS/S3
    • Kinesis
    • Twitter
    • TCP sockets

    又可分为:

    1. Basic sources(基本来源): 在 StreamingContext API 中直接可用的源(source)。如文件系统(file systems)和 socket 连接(socket connections)。
    2. Advanced sources(高级来源): Kafka,Flume,Kinesis等通过额外的实体类来使用的来源, 需要连接额外的依赖。
    image

    原理:接收实时输入数据流并将数据切分成多个批数据,然后由Spark Engine 处理并分批生成 结果数据流。


    image

    Spark Streaming 提供了一个高层次的抽象叫做离散流(discretized stream)或者 DStream,它代表一个连续的数据流。DStream 可以通过来自数据源的输入数据流创建,例如 Kafka,Flume 以及 Kinesis,或者在其他 DStream 上进行高层次的操作创建。在内部,一个 DStream 是通过一系列的 RDD 来表示。

    StreamingContext

    初始化 Spark Streaming 程序,必须创建 StreamingContext 对象,它是所有的 Spark Streaming 功能的主入口点。

    StreamingContext 定义之后:

    • 通过创建输入 DStreams 定义输入源。
    • 通过应用转换和输出操作 DStreams 定义流计算(streaming computations)。
    • 开始接收数据,并用 streamingContext.start() 处理它。
    • 等待处理被停止(手动停止或因任何错误停止)StreamingContext.awaitTermination() 。
    • 该处理可以使用 streamingContext.stop() 手动停止。

    注意:

    • StreamingContext 一旦启动,将不会有新的数据流的计算可以被创建或者添加到它。
    • StreamingContext 一旦停止,它不会被重新启动。
    • 同一时间内在 JVM 中只有一个 StreamingContext 存活。
    • 在 StreamingContext 上的 stop() 同样也停止了 SparkContext 。若只停止 StreamingContext ,设置 stop() 的可选参数: stopSparkContext 为 false 。
    • SparkContext 可以被重新用于创建多个 StreamingContexts,只要前一个 StreamingContext 在下一个StreamingContext 被创建之前停止(不停止 SparkContext)。

    DStream

    Discretized Stream(离散化流)或者 DStream(离散流)是 Spark Streaming 提供的基本抽象。

    DStream 代表了一个连续的数据流,无论是从源接收到的输入数据流,还是通过变换输入流所产生的处理过的数据流。

    在内部,一个DStream表示一系列连续的 RDDs(RDD 是 Spark 分布式数据集的抽象)。在一个 DStream 中每个 RDD 包含来自一定时间间隔的数据。


    image
    • 实时数据流处理

    相关文章

      网友评论

          本文标题:Spark Steaming Abstract

          本文链接:https://www.haomeiwen.com/subject/dqvguftx.html