Atlas集成外部组件—集成HiveHBaseKafka

Posted 李子捌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Atlas集成外部组件—集成HiveHBaseKafka相关的知识,希望对你有一定的参考价值。

目录

1、集成Hive

1.1 历史元数据处理

2、集成HBase

2.1历史元数据导入

3、集成Kafka

3.1Bug规避

3.1.1 发现bug

3.1.2 规避bug

3.1.2 集成原理与局限性

3.1.3 历史元数据导入

3.1.4 准时导入kafka元数据


安装好Atlas只是第一步,接下来我们得采集相关大数据组件的元数据,所以得跟大数据组组件做集成。如果是手工安装的Apache版本的Atlas,我们还需要单独做Atlas跟其他组件的集成配置才能管理他们的元数据,比如HBase、Hive、Storm、kafka等。我们所要做的就是采集元数据和使用即可。

1、集成Hive

没有任何表,第一次你会没有看见database,后续操作后再次查看出现foo

image-20210222163530619.png

 1# 切换到hive用户
 2su - hive
 3# 进入hive
 4hive
 5# 查看hive数据库
 6show databases;
 7# 创建databases
 8create database if not exists foo
 9# 再次查看
10show databases;

image-20210222163908631.png

1.1 历史元数据处理

在上线Atlas之前Hive可能运行很久了,所以历史上的元数据无法触发hook,因此需要一个工具来做初始化导入。Apache Atlas提供了一个命令行脚本 import-hive.sh ,用于将Apache Hive数据库和表的元数据导入Apache Atlas。该脚本可用于使用Apache Hive中的数据库/表初始化Apache Atlas。此脚本支持导入特定表的元数据,特定数据库中的表或所有数据库和表。

1# 切换到 atlas 用户
2su - atlas
3# 执行导入脚本
4/usr/hdp/current/atlas-client/hook-bin/import-hive.sh
5
6# 账户密码 admin admin123

image-20210222171932856.png

看到新导入的database 则证明历史元数据导入成功

image-20210222172037284.png

2、集成HBase

Atlas HBase hook与HBase master注册为协处理器。在检测到对HBase名称空间/表/列族的更改时,Atlas Hook过Kafka通知更新Atlas中的元数据。按照以下说明在HBase中设置Atlas Hook:

 1# 编辑 hbase-site.xml
 2cd /etc/hbase/conf
 3vi hbase-site.xml
 4
 5# add for hbase regist atlas hook
 6# design by liziba 2021/02/22
 7<property>
 8    <name>hbase.coprocessor.master.classes</name>
 9    <value>org.apache.atlas.hbase.hook.HBaseAtlasCoprocessor</value>
10</property>

image-20210222174016445.png


image-20210222174032200.png

查看元数据

image-20210222174859268.png

1# 切换到hadoop
2su - hadoop
3# 创建hbase table
4hbase shell
5
6create 't1', 'cf1'

image-20210222175446402.png

再次查看元数据

image-20210222174929240.png

2.1历史元数据导入

同样,HBase也会在Atlas上线之前早就上线了,所以需要同步历史上的元数据。

注意:一定要进入atlas用户,因为Atlas的Linux管理账户是atlas,其他账户下可能会报没有权限的错误。

1sudo  su  -  atlas
2/usr/hdp/current/atlas-client/hook-bin/import-hbase.sh
3# 密码 admin admin123

image-20210222175836185.png

再次查看元数据

image-20210222180046136.png

3、集成Kafka

3.1Bug规避

HDP3.1有一个Bug,安装Atlas时不会自动安装atlas-kafka-hook。

3.1.1 发现bug

1# 进入hook-bin目录
2cd  /usr/hdp/current/atlas-client/hook-bin

image-20210222180726270.png

可以看到并没有Kafka的import脚本。

然后再登录HDP yum源所在节点(安装Ambari时使用的Httpd)

1cd  /var/www/html/HDP/centos7/3.1.4.0-315/atlas
2ls  -l

image-20210222180935258.png

上图中我们可以看到atlas-kafka插件包是提供了的,接下来可以看看该插件在Kakfa节点上是否安装。

登录任意Kafka节点:

1yum  list  atlas-metadata_3_1_4_0_315-kafka-plugin

并未安装atlas-metadata_3_1_4_0_315-kafka-plugin

image-20210222181329764.png

结论 HDP-3.1.4.0中,Ambari安装Atlas时没有自动安装atlas-metadata_3_1_4_0_315-kafka-plugin,这是一个bug

3.1.2 规避bug

在 Kafka的任意Clien节点安装atlas-metadata_3_1_4_0_315-kafka-plugin: ambari-02 167

1sudo yum install -y atlas-metadata_3_1_4_0_315-kafka-plugin

image-20210222181730602.png

安装完修改下执行权限

1sudo chown atlas:hadoop /usr/hdp/current/atlas-client/hook-bin/import-kafka.sh
2sudo chown atlas:hadoop /usr/hdp/current/atlas-client/logs/

3.1.2 集成原理与局限性

Atlas只提供一个批量导入元数据到Atlas的工具,原理是通过kafka.utils.ZkUtils获取Topic的元数据信息并写入Atlas。

Atlas没有提供Kafka Hook,所以不能实时采集Kafka的元数据,需要定期调度批量导入元数据的脚本。

3.1.3 历史元数据导入

Kafka可能在Atlas上线之前早就上线了,所以需要同步历史上的元数据

查看kakfa_topic 元数据 初始无元数据

image-20210222182501808.png

1# 在安装kafka插件服务器执行初始化脚本
2su - atlas
3/usr/hdp/current/atlas-client/hook-bin/import-kafka.sh

image-20210222182935910.png

再次查看元数据

image-20210222182956740.png

手动创建topic

image-20210222183123777.png

再次查看元数据,并未出现yntx topic

image-20210222183151213.png

重新执行脚本 /usr/hdp/current/atlas-client/hook-bin/import-kafka.sh

查看元数据 出现了yntx topic

image-20210222183434606.png

3.1.4 准时导入kafka元数据

通过《3.1.3 历史导入元数据》发现Atlas并不能实时获取Kafka元数据,但是只要Kafka的Topic出现变化,可以再次调用导入脚本即可,因此建议:

可以配置在DS配置一个定时任务专门按照一定周期执行/usr/hdp/current/atlas-client/hook-bin/import-kafka.sh即可。

以上是关于Atlas集成外部组件—集成HiveHBaseKafka的主要内容,如果未能解决你的问题,请参考以下文章

Atlas部署并集成HIVE

CDH 平台集成 Apache Atlas

数据治理:Atlas集成Hive

Mongodb Atlas 与 Grafana 的集成

Apache Atlas 和 Airflow 集成

Atlas2.1.0集成CDH6.3.0部署