Atlas集成大数据组件

举报
李子捌 发表于 2021/11/24 20:03:04 2021/11/24
6.4k+ 0 0
【摘要】 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

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

    全部回复

    上滑加载中

    设置昵称

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

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

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