![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=1739611999-bo1sk4mRdjHazheEA3d8JfKD5QWEKl34-0-3e96d1211de4d1cbd945eee088e899b5)
图1-17 Spark Streaming的数据流
Spark Streaming接收这些实时输入数据流,会将它们按批次划分,然后交给Spark引擎处理,生成按照批次划分的结果流,如图1-18所示。
![](https://epubservercos.yuewen.com/9D3CBD/15367250405333906/epubprivate/OEBPS/Images/Figure-0022-0018.jpg?sign=1739611999-zqpGGpGrwdD5ggV1FFyXUjcc3XzYERBB-0-023ba88f2f397d394d618587f6e1c703)
图1-18 Spark Streaming在Spark内的数据流
Spark Streaming程序代码中使用了StreamingContext作为Spark Streaming的入口,还使用了高度抽象的map、flatMap、reduce、join等原语,对初始的DStream(discretized stream,离散流)进行转换生成新的DStream,并利用最后的DStream来保存处理结果。
Spark Streaming为接收数据、负载均衡、数据处理会分别产生并执行若干个Job。