Spark Streaming流式计算基础

版本

1.6.0-Spark Streaming
2.1.0-Spark Streaming和Structured Streaming
    Spark Streaming
    Structured Streaming是基于Spark SQL引擎,目前版本还是alpha-实验阶段

架构

微批次架构
    时间区间--批次间隔

Spark-Streaming了解

    离散化Discretized

    输入源
        核心输入源  spark-streaming
        其他输入源--spark-streaming-kafaka

    读取命令
        textFilesStream() //文本流
        KafkaUtils        //kafaka
        FlumeUtils          //Flume

        StreamingContext
        读入后返回
            DStream
    对DStream的转化操作
        无状态操作--批处理不依赖与之前批次
        有状态操作--需要使用之前批次的数据或者中间计算结果来计算当前批次
            跨时间区间跟踪数据的操作
                滑动窗口--
                    批次间隔
                        窗口时长--控制每次计算最近的多少个批次的数据 bathInterval--windowDuration
                        滑动步长--对新的DStream进行计算的间隔 
                        .window()
                        reduceByWindow()
                        reduceByKeyWindow()
                        +   -
                        countByWindow()
                updataStateByKey()
                    跨批次维护状态
                    update()
    对DStream的输出操作
            saveAsTextFiles()
            saveAsHadoopFiles()

机制

容错性
一致性
    重算--谱系图
    检查点机制
        1.控制发生失效时需要重新计算的状态数--2.提供驱动程序容错--3.接收器容错
        设置检查点
            ssc.checkpoint("hdfs://")

    7*24不间断运行配置

blogroll

social