Azkaban

Azkaban概述

Azkaban是一个分布式工作流管理器,在LinkedIn上实现,以解决Hadoop作业依赖性问题。我们有需要按顺序运行的工作,从ETL工作到数据分析产品。特点:

  • 给用户提供了一个非常友好的可视化界面->web界面
  • 非常方便的上传工作流-》打成压缩包
  • 设置任务间的关系
  • 权限设置
  • 模块化
  • 随时停止和启动任务
  • 可以查看日志记录

与Oozie对比

和Oozie相对比,azkaban是一个轻量级调度工具。企业应用的功能并非小众的功能可以使用Azkaban。
功能:两个任务流调度器可以调度使用mr,java,脚本工作流任务,都可以进行定时调度...
使用:az直接传参;Oozie直接传参,支持EL表达式...
定时:az定时执行任务基于时间;Oozie任务基于时间和数据
资源:az有严格的权限控制;Oozie无严格权限控制

Azkaban安装部署

压缩包:

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

上传项目

选择要上传的工作流文件的存档文件。目前,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 ,该博主讲解会更为详细。

上一篇:分布式计算(五)Azkaban使用


下一篇:Azkaban学习之路(四)—— Azkaban Flow 2.0的使用