Azkaban概述
Azkaban是一个分布式工作流管理器,在LinkedIn上实现,以解决Hadoop作业依赖性问题。我们有需要按顺序运行的工作,从ETL工作到数据分析产品。特点:
- 给用户提供了一个非常友好的可视化界面->web界面
- 非常方便的上传工作流-》打成压缩包
- 设置任务间的关系
- 权限设置
- 模块化
- 随时停止和启动任务
- 可以查看日志记录
与Oozie对比
和Oozie相对比,azkaban是一个轻量级调度工具。企业应用的功能并非小众的功能可以使用Azkaban。
功能:两个任务流调度器可以调度使用mr,java,脚本工作流任务,都可以进行定时调度...
使用:az直接传参;Oozie直接传参,支持EL表达式...
定时:az定时执行任务基于时间;Oozie任务基于时间和数据
资源:az有严格的权限控制;Oozie无严格权限控制
Azkaban安装部署
压缩包:
上传解压
连接MySQL 将解压后azkaban-2.5.0中的create-all-sql-2.5.0.sql导入到mysql
创建MySQL库 create database azkaban;
查看 show databases;
use azkaban;
导入: source /root/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql
创建SSL(安全链接)配置
服务器需要一个证书
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
注意keystore的位置,需要在azkaban-web-2.5.0 目录下
时间同步设置
生成时区文件 tzselect生成 5->9->1->yes
拷贝时区文件 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
集群时间同步 crt中开启交互窗口 发送
sudo date -s '2018-11-28 20:41:33'
修改配置文件 azkaban-web-server-2.5.0.tar.gz\azkaban-web-2.5.0\conf\azkaban.properties
default.timezone.id=Asia/Shanghai
mysql相关配置 库,用户名,密码
SSL密码修改 3个密码修改
可选配置:成功失败邮箱
修改配置文件 azkaban-web-server-2.5.0.tar.gz\azkaban-web-2.5.0\conf\azkaban-users.xml
添加界面操作用户
修改配置文件 azkaban-executor-server-2.5.0.tar.gz\azkaban-executor-2.5.0\conf\azkaban.properties
default.timezone.id=Asia/Shanghai
mysql相关配置 库,用户名,密码
启动web服务器 bin/azkaban-web-start.sh
启动执行器 bin/azkaban-executor-start.sh
访问web http://192.168.81.111:8443
上传项目
选择要上传的工作流文件的存档文件。目前,Azkaban只支持xxx.zip文件。zip应包含xxx.job运行作业所需的文件和任何文件。作业名称在项目中必须是唯一的。
Azkaban将验证zip的内容,以确保满足依赖关系,并且没有检测到循环依赖。如果发现任何无效的工作流,上传将失败。上传覆盖项目中的所有文件。在上传新的zip文件后,对作业所做的任何更改都将被清除。
串行定时任务工作流
start.job
type=command
command=echo "this is start.job"
finish.job
type=command
dependencies=start
command=echo "this is finish.job"
successEmail=test@example.com
failureEmail=test@example.com
并行定时任务工作流
step1.job
type=command
dependencies=start
command=echo "this is step1.job"
step2.job
type=command
dependencies=start
command=echo "this is step2.job"
项目权限
创建项目时,创建者将自动在项目上给予ADMIN状态。这允许创建者查看,上传,更改作业,运行流程,删除并向项目添加用户权限。管理员可以删除其他管理员,但不能删除自己。除非管理员被管理角色的用户删除,否则这会阻止项目成为管理员。权限页面可从项目页面访问。在权限页面上,管理员可以将其他用户,组或代理用户添加到项目中。
- 添加用户权限为这些用户赋予项目所指定的权限。通过取消选中所有权限来删除用户权限。
- 组权限允许特定组中的每个人指定的权限。通过取消选中所有组权限来删除组权限。
- 如果代理用户已打开,则代理用户允许项目工作流作为这些用户运行。这有助于锁定哪些无头帐户作业可以代理。添加后,点击“删除”按钮即可将其删除。
- 每个用户都通过UserManager进行验证,以防止添加无效用户。组和代理用户也将检查以确保它们是有效的,并查看是否允许管理员将其添加到项目中。
ADMIN 最高权限,包括给其他用户添加、修改权限
READ 只能访问每一个project的内容和日志信息
WRITE 可以在已创建的project上传、修改任务的属性,可以删除任何的project
EXECUTE 允许用户执行任何的工作流
SCHEDULE 允许用户添加、删除任何工作流的调度信息
CREATEPROJECTS 如果项目创建被锁定,则允许用户创建新项目
本篇博文部分参考了 :https://blog.csdn.net/clypm/article/details/79076801 ,该博主讲解会更为详细。