一、Azkaban服务部署模式
(1)solo-server模式
使用的DB是azkaban包自带一个内嵌的H2库,Web Server和Executor Server运行在同一个进程里。这种模式包含Azkaban的所有特性,但一般用来学习和测试。
(2)two-server模式
- DB使用的是MySQL,MySQL支持master-slave架构,Web Server和Executor Server运行在不同的进程中。
- slave(executor)启动,会在azkaban.executors表中 插入或更新executor的active(存活)记录; web启动时,会从azkaban.executors表中读取executor记录。
- 所以:该模式启动,先启动executor,再启动web。
(3)分布式multiple-executor模式
- DB使用的是MySQL,MySQL支持master-slave架构,Web Server和Executor Server运行在不同机器上,且有多个Executor Server。
- 该模式启动,先启动executor,再启动web。
二、Azkaban安装包源码编译
1.源码下载地址:
https://github.com/azkaban/azkaban
2.需要安装GIT
yum -y install git
3.进入azkaban目录 编译(为了避免错莫名其妙的错误,跳过test)
./gradlew build -x test
4.编译成功后:
(1)如果只部署单机solo模式,仅使用azkaban-solo-verver
mv azkaban-solo-server/build/distributions/*.zip /home/azkaban
(2)如果部署master-slaver模式
// Azkaban管理界面UI mv azkaban-web-server/build/distributions/*.zip /home/azkaban // Azkaban 任务执行者 mv azkaban-exec-server/build/distributions/*.zip /home/azkaban // MySQL *.sql数据库创建文件 mv azkaban-db/build/distributions/*.zip /home/azkaban
三、问题
solo启动报错:Cannot find 'database.properties' file in /home/azkaban/azkaban-solo-server/bin/sql/database.properties
2020/06/17 20:49:23.780 +0800 INFO [AzkabanDatabaseUpdater] [Azkaban] Will auto update any changes.
2020/06/17 20:49:23.785 +0800 INFO [DataSourceUtils] [Azkaban] h2 DB path: /home/azkaban/azkaban-solo-server/bin/./h2
2020/06/17 20:49:23.811 +0800 ERROR [AzkabanWebServer] [Azkaban] Failed to start single server. Shutting down.
java.io.IOException: Cannot find 'database.properties' file in /home/azkaban/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)
原因:启动shell 脚本bug,需在azkaban根目录:使用bin/start-solo.sh命令启动