azkaban执行任务长时间无法结束

时间:2024-03-07 20:33:49

问题显示

 

由于一次执行较多的任务,导致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即可