啟動Flink顯示初始化狀態(tài)怎么解決?
Flink On Yarn模式
問題
flnk任務在跑的過程中, 有時候任務停掉了 ,不過我有 定時任務,可以把失敗的flink任務拉起來,但是因為最新的checkpoint做失敗了,導致腳本無法拉起flink任務,任務會一直處于初始化狀態(tài),這樣是有問題的 因為我無法識別到最后一個checkpoint是成功的還是失敗的
文章來源:http://www.zghlxwxcb.cn/news/detail-623401.html
思路
通過flink rest api可以判斷出來這個初始化的狀態(tài),然后刪除失敗的checkpoint
具體實現(xiàn)思路
具體的解決步驟(腳本實現(xiàn)):
1.通過任務名稱獲取appid;
2.curl http://${yarnaddr}/proxy/${appid}/jobs/overview 獲取job的狀態(tài);
3.如果是初始化狀態(tài),就刪除當前的chk(其實就是最新的chk,也是有問題的);,然后調用啟動腳本;
4.這個腳本就相當于一個巡檢程序,定時去掃描一下 , 如果有初始化,就處理一下, 如果沒有的話,忽略即可;
腳本如下
flinkInitDeal.sh文章來源地址http://www.zghlxwxcb.cn/news/detail-623401.html
#!/bin/bash
source ~/.bash_profile
yarnaddr=172.2.3.8:8088
applicationname=`yarn application --list | grep "flink-etl" | cut -f1 `
let i=0 #獲取任務數(shù)
let log_count=0 #獲取日志中的任務數(shù)
start_count=RUNNING #判斷任務是否存在異常
cd /test/flink
curl http://${yarnaddr}/proxy/${applicationname}/jobs/overview > flink_job.log
jobstatus=`cat /test/flink/flink_job.log | awk -F\" '{print $14}'`
if [[ ${jobstatus} = 'INITIALIZING' ]]
then
path=$(hadoop fs -ls -t -r /flink/checkpoints/* | sort -nr | grep 'chk' | head -n 1 | awk '{print $NF}')
hadoop dfs -rmr ${path}
cd /home/hadoop/flink-1.14/app
sh stop.sh
sleep 10
sh start.sh
到了這里,關于啟動Flink顯示初始化狀態(tài)怎么解決?的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!