1. 程式人生 > >Spark Streaming簡介

Spark Streaming簡介

and style 實時處理 board dfs distrib output 數據庫 zed

Spark Streaming 是core Spark的一個擴展,用來處理實時數據流,數據源可以來自Kafka, Flume, HDFS等,經過復雜的算法處理後,存入HDFS,數據庫,或者實時的Dashboards.

技術分享

從內部來看,Spark Streaming把進來的流式數據切成一小塊一小塊,然後再交給Spark Engine處理,最終把無間隔的流式數據處理為有微小間隔的批次數據。由此完成了對數據流的實時處理。

技術分享

接下來,介紹幾個重要的概念:

Discretized Stream(DStream)DStream是Spark Streaming的一個抽象概念,代表一段連續的數據流,它既可以是從輸入端收到的數據流,也可以是經過轉換處理後的數據流。從內部來看一個DStream是由一組RDD序列構成。

技術分享

Resilient Distributed Dataset(RDD): RDD是Spark的一個數據結構,它由一組只讀的,可容錯的,可分布式處理的記錄所構成。RDD要麽通過讀取外部數據來創建,要麽通過轉換現有的RDD來創建。RDD的操作包含Transformation(從現有的RDD生成一個新的RDD)和Action(對RDD執行運算後向Driver程序返回結果)

技術分享

Input DStreams: Input DStream代表了從數據源接收到的輸入數據流,Spark Streaming提供了兩類數據源,一類是基礎源,比如文件系統,Socket連接。另一類是高級源,比如Kafka, Flume這些。

Transformations on DStreams: 與RDD類型,我們也可以對DStream進行某些轉換(Transformation), 其中常用的一些轉換請參見 這裏

Output Operations on DStreams: DStream的輸出操作允許將DStream的數據存到外部系統中,比如數據庫或者文件系統。具體的輸出操作請參見 這裏

總的來說,Spark Streaming就是將實時數據流分成一個個的RDD,然後對RDD進行各種操作和轉換,最終將處理結果輸出到外部的數據庫或文件系統中。

Spark Streaming簡介