数仓资源调度 Azkaban 全调度流程

数据准备

1)用户行为数据准备
(1)修改/opt/module/applog下的application.properties

#业务日期
mock.date=2020-06-15

注意:分发至其他需要生成数据的节点

[root@hadoop102 applog]$ xsync application.properties

(2)生成数据

[root@hadoop102 bin]$ lg.sh

注意:生成数据之后,记得查看HDFS数据是否存在!
(3)观察HDFS的/origin_data/gmall/log/topic_log/2020-06-15路径是否有数据

2)业务数据准备
(1)修改/opt/module/db_log下的application.properties

[root@hadoop102 db_log]$ vim application.properties
#业务日期
mock.date=2020-06-15

(2)生成数据

[root@hadoop102 db_log]$ java -jar gmall2020-mock-db-2020-04-01.jar

编写Azkaban工作流程配置文件

工作流程:

在这里插入图片描述

1)编写azkaban.project文件,内容如下

azkaban-flow-version: 2.0

2)编写gmall.flow文件,内容如下

https://gitee.com/luan_hao/data-warehouse-script/blob/master/gmall.flow

3)将azkaban.project、gmall.flow文件压缩到一个zip文件,文件名称必须是英文。
在这里插入图片描述
4)在WebServer新建项目:

在这里插入图片描述5)给项目名称命名和添加项目描述

在这里插入图片描述
6)gmall.zip文件上传

在这里插入图片描述7)选择上传的文件
在这里插入图片描述
8)查看任务流

在这里插入图片描述

9)详细任务流展示
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述11)运行结果如下

在这里插入图片描述

运行时可能出现的错误:

Missing required property “azkaban.native.lib”

azkaban.jobExecutor.utils.process.ProcessFailureException: Process exited with code 64

org.apache.hadoop.hive.ql.exec.spark.SparkTask. Failed to create Spark session

也要确保脚本文件没有任何错误!!!

Azkaban多Executor模式下注意事项

Azkaban多Executor模式是指,在集群中多个节点部署Executor。在这种模式下, Azkaban web Server会根据策略,选取其中一个Executor去执行任务。
由于我们需要交给Azkaban调度的脚本,以及脚本需要的Hive,Sqoop等应用只在hadoop102部署了,为保证任务顺利执行,我们须在以下两种方案任选其一,推荐使用方案二。

方案一:指定特定的Executor(hadoop102)去执行任务。
1)在MySQL中azkaban数据库executors表中,查询hadoop102上的Executor的id。

mysql> use azkaban;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from executors;
+----+-----------+-------+--------+
| id | host      | port  | active |
+----+-----------+-------+--------+
|  1 | hadoop103 | 35985 |      1 |
|  2 | hadoop104 | 36363 |      1 |
|  3 | hadoop102 | 12321 |      1 |
+----+-----------+-------+--------+
3 rows in set (0.00 sec)

2)在执行工作流程时加入useExecutor属性,如下
在这里插入图片描述
方案二:在Executor所在所有节点部署任务所需脚本和应用。
1)分发脚本、sqoop、spark、my_env.sh

[root@hadoop102 ~]$ xsync /root/bin/
[root@hadoop102 ~]$ xsync /opt/module/hive
[root@hadoop102 ~]$ xsync /opt/module/sqoop
[root@hadoop102 ~]$ xsync /opt/module/spark
[root@hadoop102 ~]$ sudo /root/bin/xsync /etc/profile.d/my_env.sh

2)分发之后,在hadoop103,hadoop104重新加载环境变量配置文件,并重启Azkaban

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值