美文网首页调度工具Azkaban
Azkaban01:介绍及部署

Azkaban01:介绍及部署

作者: 勇于自信 | 来源:发表于2020-06-18 16:05 被阅读0次
1.Azkaban介绍
  1. 为什么需要工作流调度系统
    1)一个完整的数据分析系统通常都是由大量任务单元组成: shell 脚本程序,java 程序,mapreduce 程序、hive 脚本等
    2)各任务单元之间存在时间先后及前后依赖关系
    3)为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行; 例如,我们可能有这样一个需求,某个业务系统每天产生 20G 原始数据,我们每天都 要对其进行处理,处理步骤如下所示:
    1)通过 Hadoop 先将原始数据上传到 HDFS 上(HDFS 的操作);
    2)使用 MapReduce 对原始数据进行清洗(MapReduce 的操作);
    3)将清洗后的数据导入到 hive 表中(hive 的导入操作);
    4)对 Hive 中多个表的数据进行 JOIN 处理,得到一张 hive 的明细表(创建中间表);
    5)通过对明细表的统计和分析,得到结果报表信息(hive 的查询操作);

4)图总结:


  1. Azkaban 的适用场景
    根据以上业务场景: (2)任务依赖(1)任务的结果,(3)任务依赖(2)任务的结果,(4)任务依赖(3)任务的结果,(5)任务依赖(4)任务的结果。一般的做法是,先 执行完(1)再执行(2),再一次执行(3)(4)(5)。
    这样的话,整个的执行过程都需要人工参加,并且得盯着各任务的进度。但是我们的很 多任务都是在深更半夜执行的,通过写脚本设置 crontab 执行。其实,整个过程类似于一个 有向无环图(DAG)。每个子任务相当于大任务中的一个节点,也就是,我们需要的就是一 个工作流的调度器,而 Azkaban 就是能解决上述问题的一个调度器。

  2. 什么是 azkaban
    Azkaban 是由 Linkedin 公司推出的一个批量工作流任务调度器,主要用于在一个工作流 内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的 key:value 对的方式,通 过配置中的 dependencies 来设置依赖关系。Azkaban 使用 job 配置文件建立任务之间的依赖 关系,并提供一个易于使用的 web 用户界面维护和跟踪你的工作流。

  3. Azkaban 特点

  1. 兼容任何版本的 hadoop
  2. 易于使用的 Web 用户界面
  3. 简单的工作流的上传
  4. 方便设置任务之间的关系
  5. 调度工作流
  6. 模块化和可插拔的插件机制
  7. 认证/授权(权限的工作)
  8. 能够杀死并重新启动工作流
  9. 有关失败和成功的电子邮件提醒
  1. 常见工作流调度系统
    1)简单的任务调度:直接使用 crontab 实现;
    2)复杂的任务调度:开发调度平台或使用现成的开源调度系统,比如 ooize、azkaban 等

  2. ooize 和 azkaban 特性对比
    下面的表格对上述四种 hadoop 工作流调度器的关键特性进行了比较,尽管这些工作流 调度器能够解决的需求场景基本一致,但在设计理念,目标用户,应用场景等方面还是存在 显著的区别,在做技术选型的时候,可以提供参考

特性 Oozie Azkaban
工作流描述语言 XML text file with key/value pairs
是否要 web 容器 Yes Yes
进度跟踪 web page web page
Hadoop job 调度支持 yes yes
运行模式 daemon daemon
事件通知 no Yes
需要安装 yes yes
支持的 hadoop 版本 0.20+ currently unknown
重试支持 workflownode evel yes
运行任意命令 yes yes
  1. Azkaban 的架构
    Azkaban 由三个关键组件构成:


    Azkaban组件

1)AzkabanWebServer:AzkabanWebServer 是整个 Azkaban 工作流系统的主要管理者, 它用户登录认证、负责 project 管理、定时执行工作流、跟踪工作流执行进度等一 系列任务。
2)AzkabanExecutorServer:负责具体的工作流的提交、执行,它们通过 mysql 数据库 来协调任务的执行。
3)关系型数据库(MySQL):存储大部分执行流状态,AzkabanWebServer 和 AzkabanExecutorServer 都需要访问数据库。

2.Azkaban安装部署
  1. 安装包准备
    azkaban-db-0.1.0-SNAPSHOT.zip
    azkaban-3.56.0.zip
    下载地址:
    https://download.csdn.net/download/qq_28286027/12532167

  2. 解压
    unzip azkaban-db-0.1.0-SNAPSHOT.zip
    unzip azkaban-3.56.0.zip


  3. 在MySQL创建Azkaban数据库和赋权限

mysql> create database azkaban;
Query OK, 1 row affected (0.02 sec)
mysql> create user 'azkaban'@'%' identified by 'azkaban';
Query OK, 0 rows affected (0.09 sec)
mysql> grant all privileges on anzkaban.* to azkaban;
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
  1. 执行上面解压后圈出的sql
mysql> use azkaban;
Database changed 
mysql> source /usr/local/src/azkaban-db-0.1.0-SNAPSHOT/create-all-sql-0.1.0-SNAPSHOT.sql
Query OK, 0 rows affected (0.04 sec)
Query OK, 0 rows affected (0.05 sec)
Query OK, 0 rows affected (0.02 sec) 
...

执行完毕


  1. 配置
    进入azkaban-3.56解压的目录中,发现有两个目录exec-server和web-server,进入exec-server的conf目录下:
    vim azkaban.properties
default.timezone.id=Asia/Shanghai
executor.global.properties=/usr/local/src/azkaban-3.56.0/web-server/conf/global.properties
mysql.host=master 
mysql.password=111111 

进入web-server的conf目录下:
vim azkaban.properties

default.timezone.id=Asia/Shanghai
executor.global.properties=/usr/local/src/azkaban-3.56.0/exec-server/conf/global.properties
user.manager.xml.file=/usr/local/src/azkaban-3.56.0/web-server/conf/azkaban-users.xml
mysql.host=master 
mysql.password=111111 
  1. 启动服务脚本
  1. 给脚本赋予可执行权限
    给exec-server下的脚本赋予权限:
cd /usr/local/src/azkaban-3.56.0/exec-server/bin
chmod +x *.sh
cd internal/
chmod +x *.sh

给web-server下的脚本赋予权限:

cd /usr/local/src/azkaban-3.56.0/web-server/bin
chmod +x *.sh
cd internal/
chmod +x *.sh
  1. 启动脚本
    启动exec-server下的脚本:
cd /usr/local/src/azkaban-3.56.0/exec-server
./bin/start-exec.sh   

启动web-server下的脚本:

cd /usr/local/src/azkaban-3.56.0/web-server
./bin/start-exec.sh   

jsp查看进程,只发现有exec-server启动:


进入/usr/local/src/azkaban-3.56.0/web-server目录下,查看启动报错,报错信息如下:


解决办法:
修改web-server下的azkaban.properties配置,增加:executor.port=12321
再次启动,成功。
访问http://master:8081/

相关文章

网友评论

    本文标题:Azkaban01:介绍及部署

    本文链接:https://www.haomeiwen.com/subject/mlvuxktx.html