AmosCloud

Library

Have a Question?

If you have any question you can ask below or enter what you are looking for!

流式计算day04

SparkStreaming

1. 流的状态

1.1无状态的流

  • 状态
    因为SparkStreaming是微批处理,用具体的间隔切分的RDD之间默认没有关联,如果想上前面的RDD处理的结果可以累加到后面的RDD,就需要在这些RDD之间维护一个状态
    这个状态类似一个checkpoint。

1.2 有状态流

  • updateStateByKey
    //def updateStateByKey(
    //      updateFunc: (Seq[V], 相同k对应的所有v
    //                 Option[S]  上一次处理完的“状态(累加器)”对象
    //             ) => Option[S]  更新之后的状态
    //    ): DStream[(K, S)]

2.窗口(window)

  • 问题
    一个JVM程序中只能启动一个StreamingContext实例
    而duration又是和SSC绑定的,如果同时想获取多个时间间隔的数据,就没法获取