更新時間:2017-09-01 來源:黑馬程序員云計算大數據培訓學院 瀏覽量:
首先我們要先了解什么是Spark-Streaming:
Spark Streaming是Spark Core API的一種擴展,它可以用于進行大規(guī)模、高吞吐量、容錯的實時數據流的處理。它支持從很多種數據源中讀取數據,比如Kafka、Flume、Twitter、ZeroMQ、Kinesis或者是TCP Socket。并且能夠使用類似高階函數的復雜算法來進行數據處理,比如map、reduce、join和window。處理后的數據可以被保存到文件系統(tǒng)、數據庫、Dashboard等存儲中。
接下來要知道Spark-Streaming的基本運行原理:
Spark-Streaming內部的基本工作原理如下:接收實時輸入數據流,然后將數據拆分成多個batch,比如每收集5秒的數據封裝為一個batch,然后將每個batch交給Spark的計算引擎進行處理,最后會生產出一個結果數據流,其中的數據,也是由一個一個的batch所組成的。
關于Spark-Streaming的高級抽象
Spark-Streaming提供了一種高級的抽象,叫做DStream,英文全稱為Discretized Stream,中文翻譯為“離散流”,它代表了一個持續(xù)不斷的數據流。DStream可以通過輸入數據源來創(chuàng)建,比如Kafka、Flume和Kinesis;也可以通過對其他DStream應用高階函數來創(chuàng)建,比如map、reduce、join、window。
DStream的內部,其實一系列持續(xù)不斷產生的RDD。RDD是Spark Core的核心抽象,即,不可變的,分布式的數據集。DStream中的每個RDD都包含了一個時間段內的數據。
接下來就是一些關于面試時的大殺器:
Spark-Streaming checkPoing概述
每一個Spark Streaming應用,正常來說,都是要724小時運轉的,這就是實時計算程序的特點,因為要持續(xù)不斷地對數據進行計算,因此,對實時計算應用的要求,應該是必須要能夠對應用程序邏輯無關的失敗,進行容錯,如果要實現這個目標,Spark-Streaming程序就必須講座狗的信息checkpoint到容錯的存儲系統(tǒng)上,從而讓它能夠錯失敗中進行恢復
如何對dstream做checkpoint
首先設置還原點目錄,其次調用dstream的checkpoint方法
【注意】:dstream的checkpoint的周期一定要是產生batch的時間的整數倍,同時官方建議將checkpoint的事件設置為至少10秒,
通常來說,將checkpoint間隔設置為窗口操作的滑動間隔的5~10倍是個不錯的選擇
本文版權歸黑馬程序員云計算大數據培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!