Atlas集成大数据组件

举报
李子捌 发表于 2021/11/24 20:03:04 2021/11/24
【摘要】 Atlas集成外部组件安装好Atlas只是第一步,接下来我们得采集相关大数据组件的元数据,所以得跟大数据组组件做集成。如果是手工安装的Apache版本的Atlas,我们还需要单独做Atlas跟其他组件的集成配置才能管理他们的元数据,比如HBase、Hive、Storm、kafka等。我们所要做的就是采集元数据和使用即可。1、集成Hive没有任何表,第一次你会没有看见database,后续操作...

Atlas集成外部组件


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


1、集成Hive


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



# 切换到hive用户
su - hive
# 进入hive
hive
# 查看hive数据库
show databases;
# 创建databases
create database if not exists foo
# 再次查看
show databases;



历史元数据处理


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


# 切换到 atlas 用户
su - atlas
# 执行导入脚本
/usr/hdp/current/atlas-client/hook-bin/import-hive.sh

# 账户密码 admin admin123


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


2、集成HBase


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


# 编辑 hbase-site.xml
cd /etc/hbase/conf
vi hbase-site.xml

# add for hbase regist atlas hook
# design by liziba 2021/02/22
<property>
    <name>hbase.coprocessor.master.classes</name>
    <value>org.apache.atlas.hbase.hook.HBaseAtlasCoprocessor</value>
</property>


查看元数据


# 切换到hadoop
su - hadoop
# 创建hbase table
hbase shell

create 't1', 'cf1'



再次查看元数据


历史元数据导入


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


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


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



再次查看元数据


3、集成Kafka


3.1Bug规避


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


3.1.1 发现bug


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


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


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


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


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


登录任意Kafka节点:


yum  list  atlas-metadata_3_1_4_0_315-kafka-plugin


并未安装atlas-metadata_3_1_4_0_315-kafka-plugin


结论 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

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

安装完修改下执行权限

sudo chown atlas:hadoop /usr/hdp/current/atlas-client/hook-bin/import-kafka.sh
sudo 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 元数据 初始无元数据


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


再次查看元数据


手动创建topic


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


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


查看元数据 出现了yntx topic



3.1.4 准时导入kafka元数据


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


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



👇🏻 关注公众号 获取更多资料👇🏻

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。