Azkaban编译、架构及运行模式简介
2019-09-29 本文已影响0人
白面葫芦娃92
1.下载源码
https://github.com/azkaban/azkaban
按官网git clone的是最新版本,但最新的不一定是稳定版本,因此建议在github找一个稳定版本
2.在此下载3.74.7版本
[root@hadoop001 source]# pwd
/root/source
[root@hadoop001 source]# wget https://github.com/azkaban/azkaban/archive/3.74.7.tar.gz
[root@hadoop001 source]# ll
total 179684
-rw-r--r-- 1 root root 19203187 Sep 23 19:01 3.74.7.tar.gz
[root@hadoop001 source]# mv 3.74.7.tar.gz azkaban-3.74.7.tar.gz
[root@hadoop001 source]# ll
total 179684
-rw-r--r-- 1 root root 19203187 Sep 23 19:01 azkaban-3.74.7.tar.gz
[root@hadoop001 source]# tar -zxf azkaban-3.74.7.tar.gz
[root@hadoop001 source]# ll
total 179688
drwxrwxr-x 23 root root 4096 Jul 23 07:36 azkaban-3.74.7
-rw-r--r-- 1 root root 19203187 Sep 23 19:01 azkaban-3.74.7.tar.gz
[root@hadoop001 source]# cd azkaban-3.74.7
[root@hadoop001 azkaban-3.74.7]# ls
az-core azkaban-web-server
az-crypto az-reportal
az-examples build.gradle
az-exec-util CONTRIBUTING.md
az-flow-trigger-dependency-plugin docs
az-flow-trigger-dependency-type gradle
az-hadoop-jobtype-plugin gradle.properties
az-hdfs-viewer gradlew
az-intellij-style.xml gradlew.bat
az-jobsummary LICENSE
azkaban-common NOTICE
azkaban-db README.md
azkaban-exec-server requirements.txt
azkaban-hadoop-security-plugin settings.gradle
azkaban-solo-server test
azkaban-spi tools
#编译前要安装git工具,不然会报错“Failed to apply plugin [id 'com.cinnober.gradle.semver-git']”
#参考链接:[https://www.cnblogs.com/skyrim/p/7456007.html](https://www.cnblogs.com/skyrim/p/7456007.html)
[root@hadoop001 azkaban-3.74.7]# sudo yum install -y git
[root@hadoop001 azkaban-3.74.7]# ./gradlew build installDist -x test
...
BUILD SUCCESSFUL in 33m 29s
...
[root@hadoop001 azkaban-3.74.7]# cd azkaban-solo-server/
[root@hadoop001 azkaban-solo-server]# ls
build build.gradle src
[root@hadoop001 azkaban-solo-server]# cd build
[root@hadoop001 build]# ls
classes distributions install libs resources tmp
[root@hadoop001 build]# cd distributions/
[root@hadoop001 distributions]# ls
azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
azkaban-solo-server-0.1.0-SNAPSHOT.zip
[root@hadoop001 distributions]# cd ../../../
[root@hadoop001 azkaban-3.74.7]# cd azkaban-exec-server/
[root@hadoop001 azkaban-exec-server]# ls
build build.gradle src
[root@hadoop001 azkaban-exec-server]# cd build
[root@hadoop001 build]# ls
classes distributions install libs resources tmp
[root@hadoop001 build]# cd distributions/
[root@hadoop001 distributions]# ls
azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
azkaban-exec-server-0.1.0-SNAPSHOT.zip
[root@hadoop001 distributions]# cd ../../../
[root@hadoop001 azkaban-3.74.7]# cd azkaban-web-server/
[root@hadoop001 azkaban-web-server]# ls
build build.gradle node_modules package.json package-lock.json src
[root@hadoop001 azkaban-web-server]# cd build
[root@hadoop001 build]# ls
classes dust jsToPackage libs resources
distributions install less nodejs tmp
[root@hadoop001 build]# cd distributions/
[root@hadoop001 distributions]# ls
azkaban-web-server-0.1.0-SNAPSHOT.tar.gz azkaban-web-server-0.1.0-SNAPSHOT.zip
编译成功之后,去对应目录下找到对应模式的安装包即可
3.Azkaban架构
1)Relational Database(MySQL)
azkaban将大多数状态信息都存于MySQL中,Azkaban Web Server 和 Azkaban Executor Server也需要访问DB
2)Azkaban Web Server
提供了Web UI,是azkaban的主要管理者,包括 project 的管理,认证,调度,对工作流执行过程的监控等
3)Azkaban Executor Server
调度工作流和任务,纪录工作流活任务的日志,之所以将AzkabanWebServer和AzkabanExecutorServer分开,主要是因为在某个任务流失败后,可以更方便的将重新执行。而且也更有利于Azkaban系统的升级
4.Azkaban架构的三种运行模式
1)solo server mode
web server 和 executor server运行在一个进程里。这是最简单的模式,数据库内置的H2数据库(可以换为MySQL),管理服务器和执行服务器都在一个进程中运行,任务量不大项目可以采用此模式
2)two server mode
web server 和 executor server运行在不同的进程。数据库为MySQL(生产上一定要做主备),管理服务器和执行服务器在不同进程,这种模式下,管理服务器和执行服务器互不影响
3)multiple executor mode
web server 和 executor server运行在不同的进程,executor server有多个。该模式下,执行服务器和管理服务器在不同主机上,且执行服务器可以有多个