Azkaban 安装与使用

安装

下载

项目地址: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
2
#命令行执行以下命令,密码输入上一步keystore的密码,组织结构和国家(CN)省份城市随便填。
/PATH/TO/JAVA_HOME/bin/keytool -genkey -keystore keystore -alias jetty -keyalg RSA

执行完,在当前目录下就有一个keystore文件,复制到azkaban-web-2.5.0目录下。如果想新建文件夹放置,则对应修改配置里面jetty.keystore和jetty.truststore的路径。

启动web

1
2
#后台启动
nohup ./bin/azkaban-web-start.sh &

启动玩访问http://localhost:8443/,输入azkaban/azkaban即可进入(用户名和密码在conf/azkaban-users.xml中配置)。
如需停止,执行bin下的shutdown.sh即可。

配置executor

进入executor目录,修改azkaban.properties

1
2
3
4
5
6
7
default.timezone.id=Asia/Shanghai
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban

启动executor

1
2
#后台启动
nohup ./bin/azkaban-executor-start.sh &

如需停止,执行bin下的shutdown.sh即可。

完成

至此,程序启动完成,可以开始使用了。

使用

下面就介绍下如何使用azkaban调度spark。

写job

新建文件,以.job结尾命名。
写文件,文件包含type,command,dependencies(非必须)等
例如:

1
2
3
4
type=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,可以选择直接执行,或者定时执行,根据自己的实际情况选择。

热评文章