众所周知,Spark框架的流计算功能,是由Spark Streaming提供的,而Spark Streaming提供的准实时流计算,加上Spark本身在批处理上的优势,这使得Spark在市场上的地位甚至压过了Storm。今天的大数据学习分享,我们主要来讲讲Spark Streaming的几个重要概念。
Spark Streaming的工作流程,大致可以这样去理解:
Spark Streaming实时接收数据流,并按照一定的时间间隔将连续的数据流拆分成一批批离散的数据集;然后应用诸如map、reducluce、join和window等丰富的API进行复杂的数据处理;最后提交给Spark引擎进行运算,得到批量结果数据。
在Spark Streaming的数据处理流程当中,我们需要去理解几个重要的概念:
1、批处理时间间隔
在Spark Streaming中,对数据的采集是实时、逐条进行的,但是对数据的处理却是分批进行的。因此,Spark Streaming需要设定一个时间间隔,将该时间间隔内采集到的数据统一进行处理,这个间隔称为批处理时间间隔。
对于源源不断的数据,Spark Streaming是通过切分的方式,先将连续的数据流进行离散化处理。数据流每被切分一次,对应生成一个RDD,每个RDD都包含了一个时间间隔内所获取到的所有数据,因此数据流被转换为由若干个RDD构成的有序集合,而批处理时间间隔决定了Spark Streaming需要多久对数据流切分一次。
Spark Streaming是Spark上的组件,其获取的数据和数据上的操作最终仍以Spark作业的形式在底层的Spark内核中进行计算,因此批处理时间间隔不仅影响数据处理的吞吐量,同时也决定了Spark Streaming向Spark提交作业的频率和数据处理的延迟。
2、窗口时间间隔
窗口时间间隔又称为窗口长度,它是一个抽象的时间概念,决定了Spark Streaming对RDD序列进行处理的范围与粒度,即用户可以通过设置窗口长度来对一定时间范围内的数据进行统计和分析。
3、滑动时间间隔
滑动时间间隔决定了Spark Streaming对数据进行统计与分析的频率,多出现在与窗口相关的操作中。滑动时间间隔是基于批处理时间间隔提出的,其必须是批处理时间间隔的整数倍。在默认的情况下滑动时间间隔设置为与批处理时间间隔相同的值。
如果批处理时间间隔为1s,窗口间隔为3s,滑动时间间隔为2s,其含义是每隔2s对过去3s内产生的3个RDD进行统计分析。
关于大数据学习,Spark Streaming的几个重要概念,以上就为大家做了大致的介绍了。关于流计算框架的学习,Spark Streaming是必学的一个框架,其中的关键性概念也需要理解透彻。成都加米谷大数据,专业
大数据培训机构,大数据开发、数据分析与挖掘,零基础班本月正在招生中,课程大纲及试学视频可联系客服领取!