問題顯示:

由於一次執行較多的任務,導致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即可
