安装
下载
项目地址:http://azkaban.github.io/
下载地址:http://azkaban.github.io/downloads.html
文档地址:http://azkaban.github.io/azkaban/docs/latest/
因为本文选择web和executor单独部署,采用mysql做存储(其他模式请看文档)。所以需下载以下文件:
- azkaban-web-server-2.5.0.tar.gz
- azkaban-executor-server-2.5.0.tar.gz
- azkaban-sql-script-2.5.0.tar.gz
2.5.0是当前的版本号,根据版本不同修改之。下载完后解压。
Mysql
azkaban-sql-script解压完之后有很多sql,新建一个数据库(本文azkaban)和用户,然后去执行create-all-sql-2.5.0.sql。
mysql>CREATE DATABASE azkaban;
mysql>CREATE USER ‘username’@’%’ IDENTIFIED BY ‘password’;
mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON.* to ‘ ‘@’%’ WITH GRANT OPTION;
mysql>source /PATH/create-all-sql-2.5.0.sql;
配置web
修改conf/azkaban.properties,主要是以下属性:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31#设置项目名称
azkaban.name=BigData
#设置项目副标题
azkaban.label=besttone
#一定要设置为上海,否则按美国时间执行
default.timezone.id=Asia/Shanghai
database.type=mysql
mysql.port=3306
mysql.host=localhost
#改为自己的数据库名称
mysql.database=azkaban
#改为自己的数据库账号
mysql.user=azkaban
#改为自己的数据库密码
mysql.password=azkaban
mail.sender=email账号
mail.host=email服务器
mail.user=email账号
mail.password=email密码
#Azkaban Jetty 服务设置,先安装此配置,后面再详细介绍生产方法.
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=keystore
jetty.password=keystore密码
jetty.keypassword=keystore密码
jetty.truststore=keystore
jetty.trustpassword=keystore密码
生成keystore
1 | #命令行执行以下命令,密码输入上一步keystore的密码,组织结构和国家(CN)省份城市随便填。 |
执行完,在当前目录下就有一个keystore文件,复制到azkaban-web-2.5.0目录下。如果想新建文件夹放置,则对应修改配置里面jetty.keystore和jetty.truststore的路径。
启动web
1 | #后台启动 |
启动玩访问http://localhost:8443/,输入azkaban/azkaban即可进入(用户名和密码在conf/azkaban-users.xml中配置)。
如需停止,执行bin下的shutdown.sh即可。
配置executor
进入executor目录,修改azkaban.properties1
2
3
4
5
6
7default.timezone.id=Asia/Shanghai
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
启动executor
1 | #后台启动 |
如需停止,执行bin下的shutdown.sh即可。
完成
至此,程序启动完成,可以开始使用了。
使用
下面就介绍下如何使用azkaban调度spark。
写job
新建文件,以.job结尾命名。
写文件,文件包含type,command,dependencies(非必须)等
例如:1
2
3
4type=command
# 执行sh脚本,建议这样做,后期只需维护脚本就行了,azkaban定义工作流程
command=/PATH/TO/SPARK/bin/spark-submit --class x.x.x.XX --master spark://x.x.x.x:8070 xxx.jar
dependencies=其他的job文件的名字(如果有前置任务的时候才加)
注:command中的x自行替换,也可以把指令写成脚本,然后command写sh xxxxx.sh,以后维护这个脚本即可。
多个任务,就写多个job文件。dependencies中写好前置关系,不可成环。
打包上传
将job文件和spark程序打出的jar包放置在同一目录,然后一起压缩成zip文件。
在azkaban的web页面上新建项目,然后选择zip压缩文件上传。
执行
在项目页面点击进入项目,点击execute flow,可以选择直接执行,或者定时执行,根据自己的实际情况选择。