Spark Streaming学习笔记
Spark Streaming是构建在Spark基础上的一个实时数据流处理框架。能够对流式数据进行可扩展的、高吞吐的、高容错的实时处理。
批生成间隔(batch interval)
数据采集确是实时的、逐条进行的,而处理数据的单位是一批,因此需要确定一个时间间隔。系统对这个间隔内获得的数据统一操作,称为批生成时间间隔,决定了作业提交的频率,是系统调优的重要参数。Dstream(Discretized Stream)
Spark Streaming的一个基本数据抽象,以离散化、有序的RDDs的形式描述了连续的数据流,内部维护了一组离散的以时间为键的RDD。窗口长度(Window Length)
窗口是一个时间概念,抽象地描述了Spark Streaming对DStream进行监控与处理的范围与粒度,可以对一定时间范围内的数据进行统计和分析。滑动时间间隔(Sliding Interval)
指明了Spark Streaming对数据统计与分析的频率。cache与persist
可将DStream缓存在内存中;与窗口、状态相关的操作,默认将数据保存在内存中
reduceByWindow、reduceByKeyAndWindow、updateStateByKeycheckpoint的作用
Spark Streaming应用程序对数据流进行实时连续的计算,需具备很强的容错性,保存了相应的信息到存储系统,在JVM崩溃等故障时,用以从故障中恢复。-
启用checkpoint的场景
业务逻辑中含有有状态转换操作
有状态模式:当前计算依赖于先前批次数据从运行应用程序的driver的故障中恢复
元数据checkpoint用于使用进度信息进行恢复