azkaban執行任務長時間無法結束

Rookie_Z發表於2021-12-03

問題顯示

 

由於一次執行較多的任務,導致azkaban的web程式崩潰,此時,關閉azkaban服務,重新啟動azkaban

但是由於azkaban的exec程式無法關閉,這裡採用kill的方式關掉exec程式
 
# azkaban 開啟:
cd /opt/azkaban/exec
sh ./bin/start-exec.sh
curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo
cd /opt/azkaban/web
sh ./bin/start-web.sh

# azkaban 關閉:
cd /opt/azkaban/exec
sh ./bin/shutdown-exec.sh
cd /opt/azkaban/web
sh ./bin/shutdown-web.sh

 

原因一:

此時發現還是不能開啟web頁面,檢視日誌發現連線不到資料庫,檢視mysql資料庫的mysql.user表
可能會沒有azkaban使用者,(不知什麼情況,系統把azkaban使用者刪除了)需要重新新增azkaban使用者,並賦予許可權
mysql -uroot -p123456

mysql> CREATE USER 'azkaban'@'localhost' IDENTIFIED BY 'azkaban';
mysql> grant all privileges on azkaban.* to azkaban@'%' identified by 'azkaban';
mysql> flush privileges;

 

 

 原因二:

重新啟動後發現執行程式還是沒有結束,還是繼續執行,但是沒有執行結果反饋(重啟服務沒有解決問題
這種情況下,可能是azkaban的資料庫配置問題,觀察azkaban.executors表
azkaban.executors介紹:azkaban架構由AzkabanWebServer、AzkabanExecutorServer、MySQL組成,web和exec需要通訊,通訊埠在每次啟動的時候隨機生成存放在這張表中,故只能存在一條狀態為1的資料
由於非正常退出程式,導致表中資料還在,存在多個活躍的埠號,導致web頁面也exec執行器通訊異常,關閉azkaban所有服務,清空這張表,重新啟動azkaban即可

 

 

 

 

 

相關文章