大数据调度工具azkaban的安装,配置

第 1 章 Azkaban 概论
1.1 为什么需要工作流调度系统
1)一个完整的数据分析系统通常都是由大量任务单元组成:
Shell 脚本程序,Java 程序,MapReduce 程序、Hive 脚本等
2)各任务单元之间存在时间先后及前后依赖关系
3)为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行;
为什么需要工作流调度系统
某个业务系统每天
产生20G原始数据,
我们每天都要对其
进行处理
HDFS
MapReduce
Hive表
Hive表
Join 明细数据
Hive大表 结果报表 业务系统
1)先将原始数据同步到HDFS上
2)对原始数据进行计算
3)生成的数据以分
区表的形式存储到多
张Hive表中
4)对Hive中多个
表的数据进行JOIN
处理
5)得到一个
明细数据
Hive大表
6)将明细数据进行复
杂的统计分析,得到结
果报表信息
7)将统计分析得到的
结果数据同步到业务
系统中
总结:为了很好地组织起这样的复杂执行计
划,需要一个工作流调度系统来调度执行
1.2 常见工作流调度系统
1)简单的任务调度:直接使用 Linux 的 Crontab 来定义;
2)复杂的任务调度:开发调度平台或使用现成的开源调度系统,比如 Ooize、Azkaban、
Airflow、DolphinScheduler 等。
1.3 Azkaban 与 Oozie 对比
总体来说,Ooize 相比 Azkaban 是一个重量级的任务调度系统,功能全面,但配置使用
也更复杂。如果可以不在意某些功能的缺失,轻量级调度器 Azkaban 是很不错的候选对象。

第 2 章 Azkaban 入门
2.1 集群模式安装
2.1.1 上传 tar 包
1)将 azkaban-db-3.84.4.tar.gz,azkaban-exec-server-3.84.4.tar.gz,azkaban-webserver-3.84.4.tar.gz 上传到 hadoop102 的/opt/software 路径
[atguigu@hadoop102 software]$ ll
总用量 35572
-rw-r–r–. 1 atguigu atguigu 6433 4 月 18 17:24 azkaban-db3.84.4.tar.gz
-rw-r–r–. 1 atguigu atguigu 16175002 4 月 18 17:26 azkaban-execserver-3.84.4.tar.gz
-rw-r–r–. 1 atguigu atguigu 20239974 4 月 18 17:26 azkaban-webserver-3.84.4.tar.gz
2)新建/opt/module/azkaban 目录,并将所有 tar 包解压到这个目录下
[atguigu@hadoop102 software]$ mkdir /opt/module/azkaban
3)解压 azkaban-db-3.84.4.tar.gz、 azkaban-exec-server-3.84.4.tar.gz 和 azkabanweb-server-3.84.4.tar.gz 到/opt/module/azkaban 目录下
[atguigu@hadoop102 software]$ tar -zxvf azkaban-db-3.84.4.tar.gz -
C /opt/module/azkaban/
[atguigu@hadoop102 software]$ tar -zxvf azkaban-exec-server3.84.4.tar.gz -C /opt/module/azkaban/
[atguigu@hadoop102 software]$ tar -zxvf azkaban-web-server3.84.4.tar.gz -C /opt/module/azkaban/
4)进入到/opt/module/azkaban 目录,依次修改名称
[atguigu@hadoop102 azkaban]$ mv azkaban-exec-server-3.84.4/
azkaban-exec
[atguigu@hadoop102 azkaban]$ mv azkaban-web-server-3.84.4/
azkaban-web
2.1.2 配置 MySQL
1)正常安装 MySQL
详见《尚硅谷大数据技术之 Hive》
2)启动 MySQL
[atguigu@hadoop102 azkaban]$ mysql -uroot -p000000
3)登陆 MySQL,创建 Azkaban 数据库
mysql> create database azkaban;
4)创建 azkaban 用户并赋予权限
设置密码有效长度 4 位及以上
mysql> set global validate_password_length=4;

设置密码策略最低级别
mysql> set global validate_password_policy=0;
创建 Azkaban 用户,任何主机都可以访问 Azkaban,密码是 000000
mysql> CREATE USER ‘azkaban’@‘%’ IDENTIFIED BY ‘000000’;
赋予 Azkaban 用户增删改查权限
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to
‘azkaban’@‘%’ WITH GRANT OPTION;
5)创建 Azkaban 表,完成后退出 MySQL
mysql> use azkaban;
mysql> source /opt/module/azkaban/azkaban-db-3.84.4/create-allsql-3.84.4.sql
mysql> quit;
6)更改 MySQL 包大小;防止 Azkaban 连接 MySQL 阻塞
[atguigu@hadoop102 software]$ sudo vim /etc/my.cnf
在[mysqld]下面加一行 max_allowed_packet=1024M
[mysqld]
max_allowed_packet=1024M
8)重启 MySQL
[atguigu@hadoop102 software]$ sudo systemctl restart mysqld
2.1.3 配置 Executor Server
Azkaban Executor Server 处理工作流和作业的实际执行。
1)编辑 azkaban.properties
[atguigu@hadoop102 azkaban]$ vim /opt/module/azkaban/azkabanexec/conf/azkaban.properties
修改如下标红的属性
#…
default.timezone.id=Asia/Shanghai
#…
azkaban.webserver.url=http://hadoop102:8081
executor.port=12321
#…
database.type=mysql
mysql.port=3306
mysql.host=hadoop102
mysql.database=azkaban
mysql.user=azkaban
mysql.password=000000
mysql.numconnections=100
2)同步 azkaban-exec 到所有节点
[atguigu@hadoop102 azkaban]$ xsync /opt/module/azkaban/azkabanexec
3)必须进入到/opt/module/azkaban/azkaban-exec 路径,分别在三台机器上,启动 executor
server

[atguigu@hadoop102 azkaban-exec]$ bin/start-exec.sh
[atguigu@hadoop103 azkaban-exec]$ bin/start-exec.sh
[atguigu@hadoop104 azkaban-exec]$ bin/start-exec.sh
注意:如果在/opt/module/azkaban/azkaban-exec 目录下出现 executor.port 文件,说明
启动成功
4)下面激活 executor,需要
[atguigu@hadoop102 azkaban-exec]$ curl -G
“hadoop102:12321/executor?action=activate” && echo
[atguigu@hadoop103 azkaban-exec]$ curl -G
“hadoop103:12321/executor?action=activate” && echo
[atguigu@hadoop104 azkaban-exec]$ curl -G
“hadoop104:12321/executor?action=activate” && echo
如果三台机器都出现如下提示,则表示激活成功
{“status”:“success”}
2.1.4 配置 Web Server
Azkaban Web Server 处理项目管理,身份验证,计划和执行触发。
1)编辑 azkaban.properties
[atguigu@hadoop102 azkaban]$ vim /opt/module/azkaban/azkabanweb/conf/azkaban.properties
修改如下属性

default.timezone.id=Asia/Shanghai

database.type=mysql
mysql.port=3306
mysql.host=hadoop102
mysql.database=azkaban
mysql.user=azkaban
mysql.password=000000
mysql.numconnections=100

azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatu
s
说明:
#StaticRemainingFlowSize:正在排队的任务数;
#CpuStatus:CPU 占用情况
#MinimumFreeMemory:内存占用情况。测试环境,必须将 MinimumFreeMemory 删除掉,否则
它会认为集群资源不够,不执行。
2)修改 azkaban-users.xml 文件,添加 atguigu 用户
[atguigu@hadoop102 azkaban-web]$ vim /opt/module/azkaban/azkabanweb/conf/azkaban-users.xml

3)必须进入到 hadoop102 的/opt/module/azkaban/azkaban-web 路径,启动 web server [atguigu@hadoop102 azkaban-web]$ bin/start-web.sh 4)访问 http://hadoop102:8081,并用 用户密码登陆

启动及命令
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Apache DolphinScheduler是一个新一代分布式大数据工作流任务调度系统,致力于“解决大数据任务之间错综复杂的依赖关系,整个数据处理开箱即用”。它以 DAG(有向无环图) 的方式将任务连接起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及 Kill任务等操作。目前已经有像IBM、腾讯、美团、360等400多家公司生产上使用。 调度系统现在市面上的调度系统那么多,比如老牌的Airflow, Oozie,Kettle,xxl-job ,Spring Batch等等, 为什么要选DolphinScheduler ? DolphinScheduler 的定位是大数据工作流调度。通过把大数据和工作流做了重点标注. 从而可以知道DolphinScheduler的定位是针对于大数据体系。 DolphinScheduler是非常强大的大数据调度工具,有以下一些特点:1、通过拖拽以DAG 图的方式将 Task 按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态;2、支持丰富的任务类型;3、支持工作流定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill 任务等操作;4、支持工作流全局参数及节点自定义参数设置;5、支持集群HA,通过 Zookeeper实现 Master 集群和 Worker 集群去中心化;6、支持工作流运行历史树形/甘特图展示、支持任务状态统计、流程状态统计;7、支持补数,并行或串行回填数据。课程会带大家构建DolphinScheduler大数据调度平台,实战讲解多种任务调度配置,会基于案例讲解DolphinScheduler使用,让大家在实战中掌握DolphinScheduler。 DolphinScheduler 发展很快 很多公司调度都切换到了DolphinScheduler,掌握DolphinScheduler调度使用势在必行,抓住新技术机遇,为跳巢涨薪做好准备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大数据小理

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

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

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

打赏作者

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

抵扣说明:

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

余额充值