更新時(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ù)庫中,最終利用實(shí)時(shí)web儀表板進(jìn)行展示。Spark Streaming支持的輸入、輸出源如下圖所示。
在上圖中,Spark Streaming先接收實(shí)時(shí)輸入的數(shù)據(jù)流,并且將數(shù)據(jù)按照一定的時(shí)間間隔分成一批批的數(shù)據(jù),每一段數(shù)據(jù)都轉(zhuǎn)變成Spark中的RDD,接著交由Spark引擎進(jìn)行處理,最后將處理結(jié)果數(shù)據(jù)輸出到外部儲(chǔ)存系統(tǒng)。
猜你喜歡:
什么是實(shí)時(shí)計(jì)算?常用的實(shí)計(jì)算框架有哪些?【大數(shù)據(jù)培訓(xùn)】
2020-05-29Kafka是什么?kafka有什么優(yōu)點(diǎn)?
2020-05-29大數(shù)據(jù)系統(tǒng)中的消息傳遞模式【大數(shù)據(jù)培訓(xùn)】
2020-05-29大數(shù)據(jù)培訓(xùn)之flink從入門到精通視頻教程【黑馬程序員】
2020-05-14Hadoop與Spark的區(qū)別有哪些?【大數(shù)據(jù)培訓(xùn)】
2020-04-24Spark計(jì)算框架在處理數(shù)據(jù)時(shí)有什么優(yōu)勢(shì)?【大數(shù)據(jù)培訓(xùn)】
2020-04-24