Azkaban 3.X Cannot find 'database.properties' 踩坑

前言

今天下載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 

效果

xg

原因探究

我們查看報錯的位置:
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就可以啦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章