写点什么

数据治理(八):Atlas 集成 Hive

作者:Lansonli
  • 2022 年 9 月 06 日
    广东
  • 本文字数:1251 字

    阅读完需:约 4 分钟

数据治理(八):Atlas集成Hive

Atlas 集成 Hive

Atlas 可以针对多个不同的数据源,统一采用 kafka 作为中间消息传递队列,使元数据源与服务端采用异步方式进行沟通,减少元数据采集对正常业务效率的影响,但是目前的 Atlas 版本监控 Hive 中数据操作比较完善,但是监控 Sqoo(目前只支持 hive import)、Spark 等支持不好。


我们可以使用 Atlas 监控 Hive 中的元数据,这时需要配置 Hive Hook(钩子),在 Hive 中做的任何操作,都会被钩子所感应到,并以事件的形式发布到 kafka,然后,Atlas 的 Ingest 模块会消费到 Kafka 中的消息,并解析生成相应的 Atlas 元数据写入底层的 Janus 图数据库来存储管理,其原理如下图示:



atlas 安装之前,hive 中已存在的表,钩子是不会自动感应并生成相关元数据的,可以通过 atlas 的工具脚本来对已存在的 hive 库或表进行元数据导入,步骤如下:

一、配置 hive-site.xml

在 node3 Hive 客户端 $HIVE_HOME/conf/hive-site.xml 中追加写入:


<!-- 配置hook 钩子类 --><property>    <name>hive.exec.post.hooks</name>    <value>org.apache.atlas.hive.hook.HiveHook</value></property>
复制代码

二、修改 Hive-env.sh

[root@node3 ~]# cd /software/hive-3.1.2/conf[root@node3 conf]# cp hive-env.sh.template hive-env.sh[root@node3 conf]# vim hive-env.shexport HIVE_AUX_JARS_PATH=/software/apache-atlas-2.1.0/hook/hive/
复制代码

三、 复制HIVE_HOME/conf 下,并追加内容

#复制atlas-application.properties文件到$HIVE_HOME/conf下[root@node3 ~]# cp /software/apache-atlas-2.1.0/conf/atlas-application.properties /software/hive-3.1.2/conf/
复制代码

四、复制导入 Hive 元数据必须的 jar 包

[root@node3 ~]# cp /software/apache-atlas-2.1.0/server/webapp/atlas/WEB-INF/lib/jackson-jaxrs-base-2.9.9.jar /software/apache-atlas-2.1.0/hook/hive/atlas-hive-plugin-impl/
[root@node3 ~]# cp /software/apache-atlas-2.1.0/server/webapp/atlas/WEB-INF/lib/jackson-jaxrs-json-provider-2.9.9.jar /software/apache-atlas-2.1.0/hook/hive/atlas-hive-plugin-impl/
[root@node3 ~]# cp /software/apache-atlas-2.1.0/server/webapp/atlas/WEB-INF/lib/jackson-module-jaxb-annotations-2.9.9.jar /software/apache-atlas-2.1.0/hook/hive/atlas-hive-plugin-impl/
复制代码

五、执行同步 Hive 元数据脚本

#这里同步的是Hive中已有数据的元数据,可以通过此脚本同步过来[root@node3 ~]# cd /software/apache-atlas-2.1.0/bin/#执行脚本导入元数据,期间需要输入atlas的用户名和密码:admin/admin[root@node3 bin]# import-hive.sh 
复制代码

六、以上导入元数据成功后,可以在 Atlas 页面中查看

七、在 Hive 中创建数据表,查看是否能被 Atlas 监控

hive> create table personinfo(id int ,name string,age int) row format delimited fields terminated by '\t';#需要准备 person.txt文件hive> load data local inpath '/root/test/person.txt' into table personinfo;
复制代码

八、刷新 Atlas 页面,可以看到数据被同步

发布于: 刚刚阅读数: 2
用户头像

Lansonli

关注

微信公众号:三帮大数据 2022.07.12 加入

CSDN大数据领域博客专家,华为云享专家、阿里云专家博主、腾云先锋(TDP)核心成员、51CTO专家博主,全网六万多粉丝,知名互联网公司大数据高级开发工程师

评论

发布
暂无评论
数据治理(八):Atlas集成Hive_数据治理_Lansonli_InfoQ写作社区