前言
今天下載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
就可以啦~