更新時(shí)間:2020年05月29日15時(shí)20分 來(lái)源:Spark Streaming框架特點(diǎn) 瀏覽次數(shù):
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等編程語(yǔ)言,可以像編寫離線程序一樣編寫實(shí)時(shí)計(jì)算的程序求照的器。
(2)容錯(cuò)性。
Spark Streaming在沒(méi)有額外代碼和配置的情況下,可以恢復(fù)丟失的數(shù)據(jù)。對(duì)于實(shí)時(shí)計(jì)算來(lái)說(shuō),容錯(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)過(guò)轉(zhuǎn)換操作重新計(jì)算得到。
(3)易整合性。
Spark Streaming可以在Spark上運(yùn)行,并且還允許重復(fù)使用相同的代碼進(jìn)行批處理。也就是說(shuō),實(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支持的輸入、輸出源如下圖所示。
在上圖中,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)。
猜你喜歡:
Spark生態(tài)系統(tǒng)包含哪些組件?【大數(shù)據(jù)培訓(xùn)】
2020-04-23機(jī)器學(xué)習(xí)是什么?機(jī)器學(xué)習(xí)分為幾類?
2020-04-23如何通過(guò)ECharts js實(shí)現(xiàn)數(shù)據(jù)可視化面板[大數(shù)據(jù)培訓(xùn)視頻教程]
2020-03-22Kafka的常用API介紹[大數(shù)據(jù)培訓(xùn)]
2020-01-03Mysql幫助信息命令是什么意思?[大數(shù)據(jù)培訓(xùn)]
2019-11-13Apache Flume timestamp和host攔截器使用
2019-11-08北京校區(qū)