• Atlas (三) --------- Atlas 使用



    前言

    Atlas 的使用相对简单,其主要工作是同步各服务(主要是Hive) 的元数据,并构建元数据实体之间的关联关系,然后对所存储的元数据建立索引,最终未用户提供数据血缘查看及元数据检索等功能。

    Atlas 在安装之初,需手动执行一次元数据的全量导入,后续 Atlas 便会利用Hive Hook 增量同步 Hive 的元数据。


    一、Hive 元数据初次导入

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

    1. 导入 Hive 元数据

    执行以下命令

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

    按提示输入用户名:admin,输入密码:admin

    Enter username for atlas :- admin
    Enter password for atlas :- 
    
    • 1
    • 2

    等待片刻,出现以下日志,即表明导入成功

    Hive Meta Data import was successful!!!
    
    • 1

    2. 查看 Hive 元数据

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

    在这里插入图片描述

    任选一张表查看血缘依赖关系 :

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

    在这里插入图片描述

    二、Hive 元数据增量同步

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

    1. 全流程调度

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

    A、新数据准备

    ① 用户行为日志

    启动日志采集通道,包括 Zookeeper,Kafka,Flume 等。

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

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

    执行生成日志的脚本

    # lg.sh
    
    • 1

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

    ② 业务数据

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

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

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

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

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

    B、启动 Azkaban

    注意需使用 azkaban 用户启动 Azkaban

    ①启动 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"
    
    • 1
    • 2
    • 3

    ② 激活 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
    
    • 1
    • 2
    • 3

    ③ 启动Web Server

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

    C、全流程调度

    ① 工作流参数
    在这里插入图片描述
    ② 运行结果

    在这里插入图片描述

    2. 查看血缘依赖

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

    在这里插入图片描述

  • 相关阅读:
    Dubbo注册中心介绍
    干货 | 基于深度学习的生态保护红线和生态空间管控区域内开发建设活动识别...
    Is the docker daemon running问题解决方法
    Gerrrit 管理员常用命令
    王杰国庆作业day3
    《深入理解Java虚拟机》读书笔记:Java内存区域
    纯前端个人主页分享
    记录--接入微信支付的全套姿势
    Linux—文件系统与文件目录基本操作
    Android---StartActivity启动过程
  • 原文地址:https://blog.csdn.net/m0_51111980/article/details/127676321