![Spark Streaming技术内幕及源码剖析](https://wfqqreader-1252317822.image.myqcloud.com/cover/795/26943795/b_26943795.jpg)
上QQ阅读APP看书,第一时间看更新
1.2 Spark Streaming应用剖析
Spark Streaming可以接收Kafka、Flume、HDFS和Kinesis等各种来源的实时输入数据,进行处理后,处理结果保存在HDFS、Databases等各种地方,如图1-17所示。
![](https://epubservercos.yuewen.com/9D3CBD/15367250405333906/epubprivate/OEBPS/Images/Figure-0022-0017.jpg?sign=1738936375-fnK5OtQM9hsBU0crhCZ3ji7eJrdBOzwJ-0-52bdeecc5988ba995b876a607339abe9)
图1-17 Spark Streaming的数据流
Spark Streaming接收这些实时输入数据流,会将它们按批次划分,然后交给Spark引擎处理,生成按照批次划分的结果流,如图1-18所示。
![](https://epubservercos.yuewen.com/9D3CBD/15367250405333906/epubprivate/OEBPS/Images/Figure-0022-0018.jpg?sign=1738936375-h236nMDL3peHpgw9AXUWe8j1m2CVrjP0-0-948e148eaf021b29b60c9ec210942074)
图1-18 Spark Streaming在Spark内的数据流
Spark Streaming程序代码中使用了StreamingContext作为Spark Streaming的入口,还使用了高度抽象的map、flatMap、reduce、join等原语,对初始的DStream(discretized stream,离散流)进行转换生成新的DStream,并利用最后的DStream来保存处理结果。
Spark Streaming为接收数据、负载均衡、数据处理会分别产生并执行若干个Job。