Fork me on GitHub

Spark笔记14-SparkStreaming运行及创建

SparkStreaming 数据源

SparkStreaming的数据来源广泛,主要有

  • Kafka
  • HDFS
  • Flume
  • DataBases
  • Dashboards
  • Tcp socket

基本原理

将实时输入的数据流以时间片(秒级)为单位进行拆分,然后经过Spark引擎之后,以类似批处理的方式处理每个时间片的数据。

用一系列微小的批处理来模拟流计算,并不是真正的流计算

Kbz978.png

KbzApj.png

Kbzmn0.png

SparkStreaming和Storm

SS Storm
毫秒级响应 无法实现 可以实现
实时计算 可以实时计算 可以实时计算
容错处理 RDD数据集更容易、更高效的容错处理 高度容错
计算方式 兼容批量和实时处理数据 实时流计算

如果需要同时处理实时数据和历史数据,则可以使用Spark Streaming

  • 容错性好
  • 可以同时支持实时和历史数据

Spark streaming 运行机制

  • Spark Streaming中有个组件Receiver。长期运行的task跑在一个Executor
  • 每个Receiver负责一个数据源,多种数据来源

KbvzoF.png

KbxFQ1.png

编写

  1. 创建输入DStream,定义一个输入源

  2. DStream进行各种转换和输出操作,定义流计算

  3. 启动和结束SparkStreaming

  4. 生成一个StreamingContext对象,它是程序的主入口

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    streamingContext.start()
    streamingContext.stop()

    # 创建StreamingContext对象

    # 交互式环境创建:pyspark中直接运行
    from pyspark.streaming import StreamingContext
    ssc = StreamingContext(sc, 1)

    # py文件如何创建
    from pyspark import SparkContext, SparkConf
    from pyspark.streaming import StreamingContext
    conf = SparkConf()
    conf.setAppName("TestDStream")
    conf.setMaster("local[2]") # 启动2个线程
    sc = SparkContext(conf=conf)
    ssc = StreamingContext(sc, 1)

本文标题:Spark笔记14-SparkStreaming运行及创建

发布时间:2019年11月02日 - 10:11

原始链接:http://www.renpeter.cn/2019/11/02/Spark%E7%AC%94%E8%AE%B014-SparkStreaming%E8%BF%90%E8%A1%8C%E5%8F%8A%E5%88%9B%E5%BB%BA.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Coffee or Tea