首頁技術(shù)文章正文

Spark Streaming是什么?有什么特點?

更新時間:2020-05-29 來源:黑馬程序員 瀏覽量:

Spark Streaming是構(gòu)建在Spark上的實時計算框架,且是對Spark Core API的一個擴展,它能夠?qū)崿F(xiàn)對流數(shù)據(jù)進行實時處理,并具有很好的可擴展性、高吞吐量和容錯性。Spark Streaming具有如下顯著特點。

 

(1)易用性。

Spark Streaming支持Java、Python、Scala等編程語言,可以像編寫離線程序一樣編寫實時計算的程序求照的器。

 

(2)容錯性。

Spark Streaming在沒有額外代碼和配置的情況下,可以恢復(fù)丟失的數(shù)據(jù)。對于實時計算來說,容錯性至關(guān)重要。首先要明確一下Spak中RDD的容錯機制,即每一個RDD都是個不可變的分布式可重算的數(shù)據(jù)集,它記錄著確定性的操作繼承關(guān)系(lineage),所以只要輸入數(shù)據(jù)是可容錯的,那么任意一個RDD的分區(qū)(Partition)出錯或不可用,都可以使用原始輸入數(shù)據(jù)經(jīng)過轉(zhuǎn)換操作重新計算得到。

 

(3)易整合性。

Spark Streaming可以在Spark上運行,并且還允許重復(fù)使用相同的代碼進行批處理。也就是說,實時處理可以與離線處理相結(jié)合,實現(xiàn)交互式的查詢操作。

 

Spark Streaming工作原理

Spark Streaming支持從多種數(shù)據(jù)源獲取數(shù)據(jù),包括 Kafka、Flume、Twitter、LeroMQ、Kinesis以及TCP Sockets數(shù)據(jù)源。當Spark Streaming從數(shù)據(jù)源獲取數(shù)據(jù)之后,可以使用如map、 reduce、join和 window等高級函數(shù)進行復(fù)雜的計算處理,最后將處理的結(jié)果存儲到分布式文件系統(tǒng)、數(shù)據(jù)庫中,最終利用實時web儀表板進行展示。Spark Streaming支持的輸入、輸出源如下圖所示。

 

1590735853479_spark-streaming.jpg


在上圖中,Spark Streaming先接收實時輸入的數(shù)據(jù)流,并且將數(shù)據(jù)按照一定的時間間隔分成一批批的數(shù)據(jù),每一段數(shù)據(jù)都轉(zhuǎn)變成Spark中的RDD,接著交由Spark引擎進行處理,最后將處理結(jié)果數(shù)據(jù)輸出到外部儲存系統(tǒng)。


1590736039922_spark-streaming02.jpg



猜你喜歡:

機器學習可以應(yīng)用于哪些領(lǐng)域?

什么是機器學習?

大數(shù)據(jù)培訓之數(shù)據(jù)可視化教程

分享到:
在線咨詢 我要報名
和我們在線交談!