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