前言
今天下载azkaban并编译,使用solo模式运行。在我解压后运行start-solo.sh
时出发现运行失败,查看日志发现如下错误
[hadoop@hadoop001 azkaban-solo-server]$ tail bin/soloServerLog__2019-09-25+15\:43\:52.out
2019/09/25 15:44:00.193 +0800 INFO [AzkabanDatabaseUpdater] [Azkaban] Use scripting directory sql
2019/09/25 15:44:00.193 +0800 INFO [AzkabanDatabaseUpdater] [Azkaban] Will auto update any changes.
2019/09/25 15:44:00.359 +0800 INFO [DataSourceUtils] [Azkaban] h2 DB path: /home/hadoop/app/azkaban-solo-server/bin/./h2
2019/09/25 15:44:02.130 +0800 ERROR [AzkabanWebServer] [Azkaban] Failed to start single server. Shutting down.
java.io.IOException: Cannot find 'database.properties' file in /home/hadoop/app/azkaban-solo-server/bin/sql/database.properties
at azkaban.database.AzkabanDatabaseSetup.loadDBProps(AzkabanDatabaseSetup.java:178)
at azkaban.database.AzkabanDatabaseSetup.loadTableInfo(AzkabanDatabaseSetup.java:102)
at azkaban.database.AzkabanDatabaseUpdater.runDatabaseUpdater(AzkabanDatabaseUpdater.java:82)
at azkaban.soloserver.AzkabanSingleServer.start(AzkabanSingleServer.java:93)
at azkaban.soloserver.AzkabanSingleServer.main(AzkabanSingleServer.java:58)
多方尝试后发现必须在根目录执行该命令
解决办法
# 返回到azkaban-solo-server根目录
[hadoop@hadoop001 bin]$ cd ../
# 再执行带bin路径的启动命令
[hadoop@hadoop001 azkaban-solo-server]$ bin/start-solo.sh
效果
原因探究
我们查看报错的位置:
azkaban-solo-server/bin/sql/database.properties
可以发现它实际上到bin
目录下的sql
文件夹寻找database.properties文件去了,而实际上我们查看一下azkaban-solo-server的目录
[hadoop@hadoop001 azkaban-solo-server]$ ls
bin plugins sql conf lib web
看见没有,sql
目录在根目录里里面,我们可以看出是shell脚本的相对路径取错了。所以我们返回根目录,在根目录执行bin/start-solo.sh
就可以啦~