SparkStreaming之 任務失敗后,自動重啟


一、通用腳本

當運行streaming任務時,可能會因為某些原因比如代碼的bug,以及其他的因素導致streaming程序停止(FINISHED,KILLED,FAILED),雖然我們可以再手動重啟一次程序,

但是這樣還是比較麻煩的,接下來要做的就是讓linux自動監控streaming程序是否停止,如果停止就自動重啟,話不多說下面寫重啟腳本:

#!/bin/bash
        myapp_status=$(yarn application -list| awk '{print $2}'  | grep WBStreamingClusterDriver  | wc -l)
 
        if [ $myapp_status = 0 ];then
 
        echo 'adx_show is stop'
 
        nohup  /usr/java/checkpoint/wb2/wb_run.sh &
 
                echo "restart WBStreamingClusterDriver success !!!"  
 
else
 
        echo 'WBStreamingClusterDriver is running !!'
 
        fi

下面解釋下,腳本的內容:

yarn application -list| awk '{print $2}' | grep WBStreamingClusterDriver | wc -l

這句話的意思在linux中查找你所運行的spark任務中  任務名稱為WBStreamingClusterDriver的任務有沒有,如果有則返回值是1,myapp_status=1,(如果你啟動多次則返回幾,其實就是這個任務的次數),如果沒有這個任務就返回0,myapp_status=0

接下來就是if  else根據你的返回值來判斷任務是否在執行,如果沒有執行,則會啟動spark submit 任務,重啟你的streaming任務,我這里寫的自己寫的streaming腳本,你也可以直接寫你的submit命令,結果一樣,如果檢測到你的程序在運行,則不會有影響,

因為這個腳本是你用來監控streaming的,如果你想每隔幾分鍾,運行一下這個監控腳本,需要寫一個crontab,定時任務,比如

*/3 * * * * /usr/restart_wb.sh   這樣就可以每隔3分鍾檢測一下你的streaming是否在運行,如果停止了則會自動重啟了,沒有停止則不會有影響.

二、如果是standalone模式

spark submit -supervise

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM