Spark-Streaming容錯機制學(xué)習(xí)

Driver容錯


  1. 思想:
  • 周期性將Dstream的DAG持久化到文件 系統(tǒng)中泪漂,重新啟動Driver時重新加載DAG
  1. 實現(xiàn):
  • 啟動Driver自動重啟(ClusterManager支持該功能)
    • standalone: 提交任務(wù)時添加 --supervise 參數(shù)
      官方文檔鏈接
    • yarn:設(shè)置yarn.resourcemanager.am.max-attempts 或者spark.yarn.maxAppAttempts
      spark on yarn參數(shù)配置
    • mesos: 提交任務(wù)時添加 --supervise 參數(shù)
  • 設(shè)置checkpoint
    StreamingContext.setCheckpoint(hdfsDirectory)
    
  • 支持從checkpoint中重啟
def createContext(checkpointDirectory: String): StreamingContext = {
    val ssc = ???
    ssc.checkpoint(checkpointDirectory)
    ssc
}
val ssc = StreamingContext.getOrCreate(checkpointDirectory, createContext(checkpointDirectory))

Executor通用容錯


  1. 思路:
  • spark 處理RDD失敗會通過lineage進行重做保證數(shù)據(jù)可靠
  • 對于reduceByKey等Stateful操作重做的lineage較長的舌仍,強制啟動checkpoint仇味,減少重做幾率
  1. 實現(xiàn):
  • 啟用checkpoint
    ssc.setCheckpoint(checkpointDir)
    

Receiver容錯


  1. 思想:
  • 接收到數(shù)據(jù)后先寫日志(WAL)到可靠文件系統(tǒng)中汇荐,后才寫入實際的RDD。如果后續(xù)處理失敗則成功寫入WAL的數(shù)據(jù)通過WAL進行恢復(fù),未成功寫入WAL的數(shù)據(jù)通過可回溯的Source進行重放
  1. 實現(xiàn):
  • 啟用checkpoint
ssc.setCheckpoint(checkpointDir)
  • 啟用WAL
    sparkConf.set("spark.streaming.receiver.writeAheadLog.enable", "true")
    
  1. 對Receiver使用可靠性存儲StoreageLevel.MEMORY_AND_DISK_SER or StoreageLevel.MEMORY_AND_DISK_SER2

  2. 效果:

  • 常規(guī)的數(shù)據(jù)流:Receiver提供AtLeastOne語義(可能重復(fù))
    spark-streaming-fault-tolerance-0.png
  • 基于KafkaDirect的Receiver提供ExactlyOne語義,保證數(shù)據(jù)不丟不重復(fù)
    spark-streaming-fault-tolerance.png

Graceful Stop 優(yōu)雅停止


  1. 思想:
  • 結(jié)束任務(wù)時等待處理中的任務(wù)結(jié)束嗤堰,并保留當前工作狀態(tài)到checkpoint中,確保重啟任務(wù)后能獲取到正確的checkpoint
  • 等待時間的設(shè)置(如何保證所有數(shù)據(jù)寫入checkpoint度宦?踢匣, 一般設(shè)置成slideWindow的5-10倍)
  1. 實現(xiàn): 有如下幾種:
  • 設(shè)置spark.streaming.stopGracefullyOnShutdown為true
  • 添加hook
sys.ShutdownHookThread {
println("Gracefully stopping Spark Streaming Application at"+ new Date())
ssc.stop(true, true)
println("Application stopped at"+ new Date())
}

StreamingContext代碼鏈接,graceful stop 邏輯見stop函數(shù)

TODO

  1. Kafka Direct如何保證 Exactly One
  2. 如何支持window容災(zāi)戈抄?(個人YY的一個場景和自我理解离唬,不確定是否正確)

window為5分鐘,slide為1分鐘的任務(wù)划鸽,執(zhí)行到第100分鐘暫停后输莺,checkpoint中的進度應(yīng)該是[96,100], 10分鐘后啟動戚哎,此時需要的進度是[106,110],輸出數(shù)據(jù)會出現(xiàn)丟失?

spark-streaming使用的是系統(tǒng)時間嫂用,而非數(shù)據(jù)時間型凳。雖然數(shù)據(jù)本身是連續(xù)的,但是到達spark-streaming的時間相關(guān)較久導(dǎo)致無法存入同一window嘱函,無法正常計算啰脚?

參考文獻

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市实夹,隨后出現(xiàn)的幾起案子橄浓,更是在濱河造成了極大的恐慌,老刑警劉巖亮航,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缴淋,居然都是意外死亡露氮,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來莫绣,“玉大人,你說我怎么就攤上這事掩宜⌒姆荆” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長怔匣。 經(jīng)常有香客問我,道長剿骨,這世上最難降的妖魔是什么浓利? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任渴语,我火速辦了婚禮屠升,結(jié)果婚禮上腹暖,老公的妹妹穿的比我還像新娘。我一直安慰自己殖告,他們只是感情好,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著真仲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪软啼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天榜跌,我揣著相機與錄音悄蕾,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的枣抱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼淤刃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吱型,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤逸贾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后津滞,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铝侵,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年触徐,在試婚紗的時候發(fā)現(xiàn)自己被綠了咪鲜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡撞鹉,死狀恐怖疟丙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鸟雏,我是刑警寧澤享郊,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站孝鹊,受9級特大地震影響炊琉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜又活,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一苔咪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧柳骄,春花似錦团赏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至可柿,卻和暖如春鸠踪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背复斥。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工营密, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人目锭。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓评汰,卻偏偏與公主長得像纷捞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子被去,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容