更新時間:2020-05-29 來源:黑馬程序員 瀏覽量:
Spark Streaming是構建在Spark上的實時計算框架,且是對Spark Core API的一個擴展,它能夠實現(xiàn)對流數(shù)據(jù)進行實時處理,并具有很好的可擴展性、高吞吐量和容錯性。Spark Streaming具有如下顯著特點。
(1)易用性。
Spark Streaming支持Java、Python、Scala等編程語言,可以像編寫離線程序一樣編寫實時計算的程序求照的器。
(2)容錯性。
Spark Streaming在沒有額外代碼和配置的情況下,可以恢復丟失的數(shù)據(jù)。對于實時計算來說,容錯性至關重要。首先要明確一下Spak中RDD的容錯機制,即每一個RDD都是個不可變的分布式可重算的數(shù)據(jù)集,它記錄著確定性的操作繼承關系(lineage),所以只要輸入數(shù)據(jù)是可容錯的,那么任意一個RDD的分區(qū)(Partition)出錯或不可用,都可以使用原始輸入數(shù)據(jù)經(jīng)過轉換操作重新計算得到。
(3)易整合性。
Spark Streaming可以在Spark上運行,并且還允許重復使用相同的代碼進行批處理。也就是說,實時處理可以與離線處理相結合,實現(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ù)進行復雜的計算處理,最后將處理的結果存儲到分布式文件系統(tǒng)、數(shù)據(jù)庫中,最終利用實時web儀表板進行展示。Spark Streaming支持的輸入、輸出源如下圖所示。
在上圖中,Spark Streaming先接收實時輸入的數(shù)據(jù)流,并且將數(shù)據(jù)按照一定的時間間隔分成一批批的數(shù)據(jù),每一段數(shù)據(jù)都轉變成Spark中的RDD,接著交由Spark引擎進行處理,最后將處理結果數(shù)據(jù)輸出到外部儲存系統(tǒng)。
猜你喜歡:
什么是實時計算?常用的實計算框架有哪些?【大數(shù)據(jù)培訓】
2020-05-29Kafka是什么?kafka有什么優(yōu)點?
2020-05-29大數(shù)據(jù)系統(tǒng)中的消息傳遞模式【大數(shù)據(jù)培訓】
2020-05-29大數(shù)據(jù)培訓之flink從入門到精通視頻教程【黑馬程序員】
2020-05-14Hadoop與Spark的區(qū)別有哪些?【大數(shù)據(jù)培訓】
2020-04-24Spark計算框架在處理數(shù)據(jù)時有什么優(yōu)勢?【大數(shù)據(jù)培訓】
2020-04-24