Azkaban概述
Azkaban是一个分布式工作流管理器,在LinkedIn上实现,以解决Hadoop作业依赖性问题,我们有需要按顺序运行的工作,从ETL工作到数据分析产品。
特点:
1)给用户提供了一个非常友好的可视化界面
2)非常方便的上传工作流 -》打成压缩包jar包
3)设置任务间的关系
4)权限设置
5)模块化
6)随时停止和启动任务
7)可以查看日志记录
8)
与Oozie对比
和Oozie相对比,azkaban是一个轻量级调度工具。
企业应用的功能并非小众的功能可以使用azkaban。
1)功能
两个任务调度器可以调度使用mr,java,脚本工作流任务
都可以进行定时调度...
2)使用
az直接传参
Oozie直接传参,支持EL表达式...
3)定时
az定时执行任务基于时间
Oozie任务基于时间和数据
4)资源
az有严格的权限控制
Oozie无严格的权限控制
Azkaban安装部署
准备工作
1)快照
2)上传安装包
azkaban-web-server-2.5.0.tar
azkaban-executor-server-2.5.0.tar
azkaban-sql-script-2.5.0.tar
mysql-libs
3)解压重命名
4)mysql中azkaban脚本导入,在 azkaban-sql-script-2.5.0.tar压缩文件中。
source /root/hd/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql
安装部署
1)创建SSL安全连接配置
因为最后访问azkaban的web可视化界面用的https请求,所以需要一个ssl证书,最好在服务端文件夹下生成,不然启动服务端时会报异常keystore找不到
/root/hd/azkaban/azkaban-web-server2.5.0/
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
2)时间同步
生成时区文件
tzselect 生成
5-》9-》1-》yes
拷贝时区文件
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
集群时间同步
crt中开启交互窗口View->Command Window 右键选择发送到全部session
sudo date -s '2019-01-28 03:21:41'
3)修改配置文件
/root/hd/azkaban/azkaban-web-server2.5.0/conf/azkaban.properties
#Azkaban Personalization Settings
azkaban.name=Test
azkaban.label=My Local Azkaban
#azkaban的UI颜色
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
#时区设置,很重要,亚洲/上海
default.timezone.id=Asia/Shanghai
#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml
#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
database.type=mysql
mysql.port=3306
mysql.host=localhost
#mysql的数据库
mysql.database=azkaban
#mysql的用户名 密码
mysql.user=root
mysql.password=root
mysql.numconnections=100
# Velocity dev mode
velocity.dev.mode=false
# Azkaban Jetty server properties.
#keytool 创建的jetty证书
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=keystore
#创建证书输入的密码
jetty.password=123456
jetty.keypassword=123456
jetty.truststore=keystore
jetty.trustpassword=123456
# Azkaban Executor settings
executor.port=12321
# mail settings
#任务执行失败或成功通知的邮箱
mail.sender=tony
mail.host=smtp.qq.com
job.failure.email=1972006441@qq.com
job.success.email=1972006441@qq.com
lockdown.create.projects=false
cache.directory=cache
/root/hd/azkaban/azkaban-web-server2.5.0/conf/azkaban-users.xml
<azkaban-users>
<user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
<user username="metrics" password="metrics" roles="metrics"/>
<user username="admin" password="admin" roles="admin,metrics" />
<role name="admin" permissions="ADMIN" />
<role name="metrics" permissions="METRICS"/>
</azkaban-users>
/root/hd/azkaban/azkaban-executor-2.5.0/conf/azkaban.properties
#Azkaban
default.timezone.id=Asia/Shanghai
# Azkaban JobTypes Plugins
azkaban.jobtype.plugin.dir=plugins/jobtypes
#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=root
mysql.password=root
mysql.numconnections=100
# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
4)启动web端服务器
bin/azkaban-web-start.sh
5)启动执行器
bin/azkaban-executor-start.sh
6)访问web
https://192.168.252.121:8443