apache atlas与hive、hbase、spark的集成

文章详细介绍了如何配置和使用ApacheAtlas来集成Hive、HBase和Spark,实现元数据同步和数据血缘追踪。包括修改配置文件、安装Hook、导入元数据、查看血缘依赖等步骤,并解决了在集成过程中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3. atlas的使用

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

3.1. Atlas集成hive

3.1.1. 修改atlas配置

修改/opt/atlas/conf/atlas-application.properties 配置文件中的以下参数

######### Hive Hook Configs ####### 
atlas.hook.hive.synchronous=false 
atlas.hook.hive.numRetries=3 
atlas.hook.hive.queueSize=10000 
atlas.cluster.name=primary 

3.1.2. 修改 Hive 配置文件

在/opt/hive/conf/hive-site.xml 文件中增加以下参数,配置 Hive Hook

<property> 
<name>hive.exec.post.hooks</name> 
<value>org.apache.atlas.hive.hook.HiveHook</value> 
</property> 

3.1.3. 安装 Hive Hook

1)解压 Hive Hook

 tar -zxvf apache-atlas-2.1.0-hive-hook.tar.gz 

2)将 Hive Hook 依赖复制到 Atlas 安装路径

cp -r apache-atlas-hive-hook-2.1.0/* /opt/atlas/ 

3)修改/opt/hive/conf/hive-env.sh 配置文件
注:需先需改文件名

mv hive-env.sh.template hive-env.sh

增加如下参数

export HIVE_AUX_JARS_PATH=/opt/atlas/hook/hive 

4)将 Atlas 配置文件/opt/atlas/conf/atlas-application.properties
拷贝到/opt/hive/conf 目录
cp /opt/atlas/conf/atlas-application.properties /opt/hive/conf/

3.1.4. 重启atlas与hive

停止atlas

 /opt/atlas/bin/atlas_stop.py

停止hive,先用jps查询相关RunJar的进程,然后将对应的进程杀死。
在这里插入图片描述

kill -9 37163 36730

启动hive

nohup hive --service metastore &
nohup hive --service hiveserver2 &

启动atlas

/opt/atlas/bin/atlas_start.py

3.1.5. Hive元数据初次导入

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

  1. 导入 Hive 元数据,执行以下命令
/opt/atlas/hook-bin/import-hive.sh 

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

Enter username for atlas :- admin 
Enter password for atlas :- 

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

Hive Meta Data import was successful!!! 
  1. 查看 Hive 元数据
    1)搜索 hive_table 类型的元数据,可已看到 Atlas 已经拿到了 Hive 元数据.
    登入atlas页面, admin -> Switch to New:
    在这里插入图片描述
    可以查看到hive_table相关的表:
    在这里插入图片描述
    2)任选一张表查看血缘依赖关系
    发现此时并未出现期望的血缘依赖,原因是 Atlas 是根据 Hive 所执行的 SQL 语句获取 表与表之间以及字段与字段之间的依赖关系的,例如执行 insert into table_a select * from table_b 语句,Atlas 就能获取 table_a 与 table_b 之间的依赖关系。此时并未执行任何 SQL 语 句,故还不能出现血缘依赖关系。

3.1.6. Hive 元数据增量同步

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

3.1.7. 生成血缘依赖

为查看血缘关系效果,在 hive 里面创建两张数据表。
1.建表语句:
1) 订单事实表

CREATE TABLE dwd_order_info ( 
`id` STRING COMMENT '订单号', 
`final_amount` DECIMAL(16,2) COMMENT '订单最终金额', 
`order_status` STRING COMMENT '订单状态', 
`user_id` STRING COMMENT '用户 id', 
`payment_way` STRING COMMENT '支付方式', 
`delivery_address` STRING COMMENT '送货地址', 
`out_trade_no` STRING COMMENT '支付流水号', 
`create_time` STRING COMMENT '创建时间', 
`operate_time` STRING COMMENT '操作时间', 
`expire_time` STRING COMMENT '过期时间', 
`tracking_no` STRING COMMENT '物流单编号', 
`province_id` STRING COMMENT '省份 ID', 
`activity_reduce_amount` DECIMAL(16,2) COMMENT '活动减免金额', 
`coupon_reduce_amount` DECIMAL(16,
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值