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

Spark Streaming是什么?有什么特點(diǎn)?

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

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

 

(1)易用性。

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

 

(2)容錯(cuò)性。

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

 

(3)易整合性。

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

 

Spark Streaming工作原理

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

 

1590735853479_spark-streaming.jpg


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


1590736039922_spark-streaming02.jpg



猜你喜歡:

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

什么是機(jī)器學(xué)習(xí)?

大數(shù)據(jù)培訓(xùn)之?dāng)?shù)據(jù)可視化教程

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!