大数据——任务调度器Azkaban介绍及安装

一、什么是Azkaban

        1.由Linkedln创建,用于运行Hadoop作业

        2.批处理工作流作业调度程序

        3.解决排序问题

        4.提供易于使用的Web用户界面来维护和跟踪工作流程

二、常见的工作流调度器

Crontab

        Linux系统自带,可以用来进行定时调度

Oozie

        管理Hdoop作业(job)的工作流程的重量级调度管理系统

Azkaban

        为了解决Hadoop的任务依赖关系问题的轻量级调度管理系统

Airflow

        一个可编程的工作流调度、监控平台

Azkaban和Oozie的区别

工作流定义

        Azkaban使用yaml(Azkaban 3.x版本)格式文件定义工作流

        Oozie使用XML文件定义工作流

定时执行

        Azkaban的定时执行任务是基于时间的

        Oozie的定时执行任务基于时间和输入数据

资源管理

        Azkaban有较严格的权限控制,如用户对工作流进行读/写/执行等操作

        Oozie暂无严格的权限控制

Azkaban特点

  1. 兼容任何版本的Hadoop
  2. 易于使用的web用户界面
  3. 简单的 web 和 http 工作流上传
  4. 项目工作区
  5. 工作流调度
  6. 模块化和可插拔的插件机制
  7. 认证和授权
  8. 跟踪用户操作
  9. 关于失败和成功的电子邮件警报
  10. SLA告警和自动查杀
  11. 重试失败的作业

三、Azkaban架构

关系型数据库 (MySQL)

        Azkaban 使用 MySQL 来存储它的大部分状态

AzkabanWebServer

        AzkabanWebServer 是所有 Azkaban 的主要管理器

        处理项目管理、身份验证、调度程序和执行监控,Web 用户界面

AzkabanExecutorServer

        执行程序

四、Azkaban部署模式

solo-server mode

        DB 嵌入 H2,Web 服务器和执行器服务器运行在同一进程中

two-server mode

        数据库应该由设置了主从设置的 MySQL 实例支持

        Web 服务器和执行器服务器应该运行在不同的进程中

multiple executor mode

        它的数据库应该由设置了主从设置的 MySQL 实例支持

        Web 服务器和执行器服务器最好运行在不同的主机上

五、Azkaban安装

5.1 源码包下载

Azkaban官网地址:https://azkaban.github.io/

源码包下载地址:https://github.com/azkaban/azkaban/tags

5.2 源码包编译

5.2.1 编译前提

        需要jdk1.8或更高版本

5.2.2 编译Azkaban

# 编译 Azkaban
./gradlew build

# 清理编译出来的文件
./gradlew clean

# 编译并发布
./gradlew installDist

# 运行测试用例
./gradlew test

# 不执行测试用例进行编译Azkaban【一般我们执行这一句就可以了,如果失败了,就多执行几次,直到成功为止】
./gradlew build -x test

5.3 solo模式安装

5.3.1 解压压缩包

mkdir /opt/install/azkaban
tar -zxvf /opt/software/azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C /opt/install/azkaban/
#更改文件夹名称
mv azkaban-solo-server-0.1.0-SNAPSHOT/ azkaban-solo-server

5.3.2 启动 AzkabanSingleServer服务

# 进入文件夹
cd /opt/install/azkaban/azkaban-solo-server/
# 启动
bin/start-solo.sh

5.3.3 查看进程

[root@singleNode azkaban-solo-server]# jps
440294 AzkabanSingleServer

5.3.4 关闭 AzkabanSingleServer服务

bin/shutdown-solo.sh

5.4 two-server安装

5.4.1 数据库准备

5.4.1.1 修改mysql配置文件

# 拷贝配置文件模板
cp /usr/share/mysql/my-small.cnf /etc/my.cnf.d/
# 修改配置文件
vim /etc/my.cnf.d/my-small.cnf
---------------------------------
[mysqld]
...
max_allowed_packet=1024M
---------------------------------

# 重启mysql来让配置生效
systemctl restart mysql

5.4.1.2 建表

-- 创建数据库
CREATE DATABASE azkaban;

-- 创建用户,用户名和密码都是azkaban
mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';
--赋予用户名为azkaban增删改查权限
-- give the user INSERT, SELECT, UPDATE, DELETE permission on all tables in the Azkaban db.
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;

-- 刷新权限
mysql> flush privileges;

-- 切换数据库
mysql> use azkaban;

-- 创建Azkaban表
mysql> source /opt/install/azkaban/azkaban-db/create-all-sql-0.1.0-SNAPSHOT.sql;

5.4.2 安装Executor Server

5.4.2.1 解压压缩包

tar zxvf /opt/software/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz -C /opt/install/azkaban/
#修改文件夹名称
cd /opt/install/azkaban/
mv azkaban-exec-server-0.1.0-SNAPSHOT/ azkaban-exec

5.4.2.2 修改配置

cd azkaban-exec/

# 配置mysql信息
vi conf/azkaban.properties
---------------------------------
mysql.port=3306
mysql.host=singleNode
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
---------------------------------

5.4.2.3 启动 AzkabanExecutorServer服务

bin/start-exec.sh

5.4.2.4 查看进程

[root@singleNode azkaban-exec]# jps
3221 RunJar
443678 AzkabanExecutorServer

5.4.2.5 激活executor

curl -G "localhost:$(<./executor.port)/executor?action=activate" && echo

-------------------------------------------------------------------------
{"status":"success"}

5.5 安装Web Server

5.5.1 解压压缩包

tar -zxvf /opt/software/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz -C /opt/install/azkaban/
#修改文件夹名称
cd /opt/install/azkaban/
mv azkaban-web-server-0.1.0-SNAPSHOT/ azkaban-web

5.5.2 修改配置

cd azkaban-web/

# 配置mysql信息
vim conf/azkaban.properties
---------------------------------
mysql.port=3306
mysql.host=singleNode
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
---------------------------------

# 配置用户信息
vim conf/azkaban-users.xml
---------------------------------
<azkaban-users>
  <user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/>
  <user password="metrics" roles="metrics" username="metrics"/>
  <user password="admin" roles="admin" username="admin"/>

  <role name="admin" permissions="ADMIN"/>
  <role name="metrics" permissions="METRICS"/>
</azkaban-users>
---------------------------------

5.5.3 启动

bin/start-web.sh

5.5.4 查看进程

[root@singleNode azkaban-web]# jps
2514 RunJar
444293 AzkabanWebServer
443678 AzkabanExecutorServer
444331 Jps

5.5.5 访问Web UI

image-20210811102452351

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vicky_Tang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值