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/con
f/
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 元数据的初次全量导入。
- 导入 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!!!
- 查看 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,