公众号:雨中散步撒哈拉
个人博客网站:https://liudongdong.top
个人导航网站:https://1024dh.top
编辑者:雨中散步撒哈拉

资源获取
关注公众号: 雨中散步撒哈拉
回复关键词: 离线数仓4.0

Atlas的使用相对简单,其主要工作是同步各服务(主要是Hive)的元数据,并构建元数据实体之间的关联关系,然后对所存储的元数据建立索引,最终未用户提供数据血缘查看及元数据检索等功能。
Atlas在安装之初,需手动执行一次元数据的全量导入,后续Atlas便会利用Hive Hook增量同步Hive的元数据。

一、 Hive元数据初次导入

Atlas提供了一个Hive元数据导入的脚本,直接执行该脚本,即可完成Hive元数据的初次全量导入。

1.导入Hive元数据

执行以下命令

[root@hadoop102 ~]# /opt/module/atlas/hook-bin/import-hive.sh 

# 按提示输入用户名:admin;输入密码:admin
Enter username for atlas :- admin
Enter password for atlas :- 

# 等待片刻,出现以下日志,即表明导入成功
Hive Meta Data import was successful!!!

image.png

2.查看Hive元数据

1.搜索hive_table类型的元数据,可已看到Atlas已经拿到了Hive元数据
image.png

2.任选一张表查看血缘依赖关系
发现此时并未出现期望的血缘依赖,原因是Atlas是根据Hive所执行的SQL语句获取表与表之间以及字段与字段之间的依赖关系的,例如执行insert into table_a select * from table_b语句,Atlas就能获取table_a与table_b之间的依赖关系。此时并未执行任何SQL语句,故还不能出现血缘依赖关系。
image.png

二、 Hive元数据增量同步

Hive元数据的增量同步,无需人为干预,只要Hive中的元数据发生变化(执行DDL语句),Hive Hook就会将元数据的变动通知Atlas。除此之外,Atlas还会根据DML语句获取数据之间的血缘关系。

1. 全流程调度

为查看血缘关系效果,此处使用Azkaban将数仓的全流程调度一次。

1.新数据准备

1.用户行为日志
启动日志采集通道,包括Zookeeper,Kafka,Flume等

修改hadoop102,hadoop103两台节点的/opt/module/applog/application.yml文件,将模拟日期改为2020-06-17如下

#业务日期
mock.date: "2020-06-17"

执行生成日志的脚本

# lg.sh

等待片刻,观察HDFS是否出现2020-06-17的日志文件

2.业务数据
修改/opt/module/db_log/application.properties,将模拟日期修改为2020-06-17,如下

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

进入到/opt/module/db_log路径,执行模拟生成业务数据的命令,如下

# java -jar gmall2020-mock-db-2021-01-22.jar

观察mysql的gmall数据中是否出现2020-06-17的数据

2.启动Azkaban

注意需使用azkaban用户启动Azkaban
1.启动Executor Server
在各节点执行以下命令,启动Executor

[root@hadoop102 ~]# sudo -i -u azkaban bash -c "cd /opt/module/azkaban/azkaban-exec;bin/start-exec.sh"
[root@hadoop103 ~]# sudo -i -u azkaban bash -c "cd /opt/module/azkaban/azkaban-exec;bin/start-exec.sh"
[root@hadoop104 ~]# sudo -i -u azkaban bash -c "cd /opt/module/azkaban/azkaban-exec;bin/start-exec.sh"

2.激活Executor Server,任选一台节点执行以下激活命令即可

[root@hadoop102 ~]# curl http://hadoop102:12321/executor?action=activate
[root@hadoop102 ~]# curl http://hadoop103:12321/executor?action=activate
[root@hadoop102 ~]# curl http://hadoop104:12321/executor?action=activate

3.启动Web Server

[root@hadoop102 ~]# sudo -i -u azkaban bash -c "cd /opt/module/azkaban/azkaban-web;bin/start-web.sh"

3.全流程调度

1.工作流参数
image.png

2.运行结果
image.png

2. 查看血缘依赖

此时在通过Atlas查看Hive元数据,即可发现血缘依赖
image.png

上一篇 下一篇