azkaban是一个任务调度,管理系统,可以帮用户管理,调度各种运算任务的一个web服务器
可以调度任何任务,只要你的任务能用脚本启动
azkaban的类似的产品还有很多,例如hadoop生态中原生的:oozie,areflow
目前azkaban只支持mysql作为元数据管理系统,必须安装mysql服务器
executor server 有好几个是真正执行的程序,调度用户的任务,将任务提交到yum集群中
web server 可视化操作平台录用利用rpc去和底层交互
mysql元数据库 记录你在控制台所下达的任务,记录元数据
将azkaban安装到已经安装好hive,sqoop的机器上,方便命令的执行.
azkaban web服务器安装 解压,移动到azkaban的目录并改名为webserver
azkaban executor服务器的安装 解压,移动到azkaban的目录并改名为executor
azkaban 元数据库初始化脚本的安装 解压,将解压后的 create-all-sql-2.5.0.sql 脚本移动到mysql中并执行初始化元数据库的命令
有两种方式
第一种,在navicat中执行create-all-sql-2.5.0.sql执行这个脚本,创建一个azkaban数据库然后右键=>运行SQL文件点击create-all-sql-2.5.0.sql即可
第二种方式用azkaban所在机器连接hive拥有所有表格的mysql服务 mysql -h doit01 -P 3306 -uroot -p123456 连接上之后创建azkaban数据库进入到该数据库,source 该路径 create-all-sql-2.5.0.sql文件即可
创建SSL配置
因为azkaban有一个web服务,使用的是浏览器协议是https(安全的http协议)
需要给web生成一个SSL秘钥文件,命令 keytool -keystore keystore -alias jetty -genkey -keyalg RSA
首先会设置一个密码(azkaban后面会用到这个密码),后面的额一系列问题回车即可这样的话就会生成一个秘钥文件
你在哪里执行这个命令这个秘钥文件就在哪里keystore,最后将会将这个秘钥文件整数移动到azkaban web服务器的根目录下
最后将所有的时间统一搞成亚洲上海的时间,以方便我们脚本的资源调度.
配置azkaban的配置文件
azkaban的web配置 vi azkaban.properties vi azkaban-users.xml
azkaban的executor配置 vi azkaban.properties
详情见文档
在azkaban-web服务器根目录下执行后台启动命令 nohup bin/azkaban-web-start.sh 1>/tmp/azstd.out 2>/tmp/azerr.out &
在azkaban-web服务器根目录下执行启动命令 bin/azkaban-web-start.sh
在azkaban-executor根目录下执行启动命令 bin/azkaban-executor-start.sh
在谷歌浏览器输入 https://doit03:8443即可访问azkaban服务了
牛刀小试
1.创建一个job描述文件
vi command.job
#command.job
type=command
command=echo’hello’
2.将job压缩成zip格式 命令 zip xommand.job
3.在web界面创建一个project(项目)上传job压缩包
4.也可以选择直接执行
Flow SUCCEEDED(工作流提交成功)这个job名称变成绿色的就代表执行完成了
Details(细节中可以看到你要打印的东西)
execution submitted successfully with exec di 1(第一个任务执行成功)
continue(继续按钮)
5.选择调度执行一次选择 projects=>Execute Flow=>Schedule 然后输入时间,日期,重复次数(分时日月周)
6.设置好之后就可以在History中看到执行过的历史工作流
7.如果想去掉这个时间设置可以Scheduling=>Remove Schedule
1.编写job,打成zip包
2.创建project,提交zip
3.设置Schedule执行时间和周期