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

云計(jì)算大數(shù)據(jù)培訓(xùn)之Spark-Streaming的基本原理以及預(yù)寫日志機(jī)制和checkpoint(1)

更新時(shí)間:2017-09-01 來(lái)源:黑馬程序員云計(jì)算大數(shù)據(jù)培訓(xùn)學(xué)院 瀏覽量:

首先我們要先了解什么是Spark-Streaming: 

Spark Streaming是Spark Core API的一種擴(kuò)展,它可以用于進(jìn)行大規(guī)模、高吞吐量、容錯(cuò)的實(shí)時(shí)數(shù)據(jù)流的處理。它支持從很多種數(shù)據(jù)源中讀取數(shù)據(jù),比如Kafka、Flume、Twitter、ZeroMQ、Kinesis或者是TCP Socket。并且能夠使用類似高階函數(shù)的復(fù)雜算法來(lái)進(jìn)行數(shù)據(jù)處理,比如map、reduce、join和window。處理后的數(shù)據(jù)可以被保存到文件系統(tǒng)、數(shù)據(jù)庫(kù)、Dashboard等存儲(chǔ)中。


接下來(lái)要知道Spark-Streaming的基本運(yùn)行原理: 

Spark-Streaming內(nèi)部的基本工作原理如下:接收實(shí)時(shí)輸入數(shù)據(jù)流,然后將數(shù)據(jù)拆分成多個(gè)batch,比如每收集5秒的數(shù)據(jù)封裝為一個(gè)batch,然后將每個(gè)batch交給Spark的計(jì)算引擎進(jìn)行處理,最后會(huì)生產(chǎn)出一個(gè)結(jié)果數(shù)據(jù)流,其中的數(shù)據(jù),也是由一個(gè)一個(gè)的batch所組成的。


關(guān)于Spark-Streaming的高級(jí)抽象 

Spark-Streaming提供了一種高級(jí)的抽象,叫做DStream,英文全稱為Discretized Stream,中文翻譯為“離散流”,它代表了一個(gè)持續(xù)不斷的數(shù)據(jù)流。DStream可以通過(guò)輸入數(shù)據(jù)源來(lái)創(chuàng)建,比如Kafka、Flume和Kinesis;也可以通過(guò)對(duì)其他DStream應(yīng)用高階函數(shù)來(lái)創(chuàng)建,比如map、reduce、join、window。 

DStream的內(nèi)部,其實(shí)一系列持續(xù)不斷產(chǎn)生的RDD。RDD是Spark Core的核心抽象,即,不可變的,分布式的數(shù)據(jù)集。DStream中的每個(gè)RDD都包含了一個(gè)時(shí)間段內(nèi)的數(shù)據(jù)。


接下來(lái)就是一些關(guān)于面試時(shí)的大殺器:


Spark-Streaming checkPoing概述


每一個(gè)Spark Streaming應(yīng)用,正常來(lái)說(shuō),都是要724小時(shí)運(yùn)轉(zhuǎn)的,這就是實(shí)時(shí)計(jì)算程序的特點(diǎn),因?yàn)橐掷m(xù)不斷地對(duì)數(shù)據(jù)進(jìn)行計(jì)算,因此,對(duì)實(shí)時(shí)計(jì)算應(yīng)用的要求,應(yīng)該是必須要能夠?qū)?yīng)用程序邏輯無(wú)關(guān)的失敗,進(jìn)行容錯(cuò),如果要實(shí)現(xiàn)這個(gè)目標(biāo),Spark-Streaming程序就必須講座狗的信息checkpoint到容錯(cuò)的存儲(chǔ)系統(tǒng)上,從而讓它能夠錯(cuò)失敗中進(jìn)行恢復(fù)


如何對(duì)dstream做checkpoint 

首先設(shè)置還原點(diǎn)目錄,其次調(diào)用dstream的checkpoint方法 

【注意】:dstream的checkpoint的周期一定要是產(chǎn)生batch的時(shí)間的整數(shù)倍,同時(shí)官方建議將checkpoint的事件設(shè)置為至少10秒, 

通常來(lái)說(shuō),將checkpoint間隔設(shè)置為窗口操作的滑動(dòng)間隔的5~10倍是個(gè)不錯(cuò)的選擇

本文版權(quán)歸黑馬程序員云計(jì)算大數(shù)據(jù)培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:黑馬程序員云計(jì)算大數(shù)據(jù)培訓(xùn)學(xué)院
首發(fā):http://cloud.itheima.com/
分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!