数仓元数据管理之Atlas安装配置及原理(2.1.0)

it2026-09-28  16

数仓元数据管理之Atlas安装配置(2.1.0)

1. 背景

当开发数仓,遇到数仓中表,数据库太多,无法很好理清楚这些表之间的关系,作用时,就需要使用元数据管理框架来处理了。atlas就是数仓中做元数据管理的框架

个人经历, 日活百万的app,ods层算上行为日志表和业务表大概40–50张,数据量比较多. DW层,因为有DWD和DWS,增加了主题表,聚合表,各类需求初步聚合表,到了100多接近150张表,并且随着业务迭代,数量还在提升。加上需求变更,此前的旧表无法满足要求,新表不断创建,增加更快。 ADS层,这一层因为是直接对接需求,表数量也比较多,但好在一些数据可以直接从DW层拿,表的数量增加不算很快,100多张

2. 安装配置

注意,atlas的安装包可以选择不同模式,因为内部架构使用到了kafka来做元数据注入和消费,使用到了janus gragh图数据做数据读写(这个图数据库内部又使用了HBase和Solr做数据存储和搜索)。kafka和hbase又需要使用zookeeper。 一般企业开发中,都会选择让atlas使用外部安装好的这些框架,所以打包时需要选择不使用内嵌框架方式 以下文档,是安装非内嵌版本的指南,内嵌版本可以忽略。

上述也可以看出,开源软件之间的联系是和密切的,但同样的,数仓技术框架的版本适配和兼容一不小心也会让人进入地狱坑。

安装zookeeper(内嵌版不需要安装) 安装过,只要自己能启动就行。注意zookeeper需要每台都启动。也可以自行编写启动和关闭脚本。具体看我博客 启动命令 bin/zkServer.sh start 查看状态(注意,最好的状态查看,其实是实际用一下框架功能,linux中有时候显示进程启动后了,但是功能没好) bin/zkServer.sh status

注意,涉及到分布式集群软件启动前,一定一定先检查一下集群节点之间的时间是否同步,时区是否正确

安装kafka(内嵌版不需要安装) 安装过,只要自己能启动就行(每一台都要起) 启动服务 bin/kafka-server-start.sh config/server.properties 检查状态 bin/kafka-topics.sh --list --zookeeper doit11:2181,doit22:2181,doit33:2181

注意这里,kafka依赖zookeeper做高可用,节点选举,所以启动kafka之前需要先启动zookeeper

安装hbase(自带版不需要安装) 安装过,只要自己能启动就行(每一台都要起) 启动hbase bin/start-hbase.sh 检查hbase是否工作正常 bin/hbase shell # 进入hbase 客户端之后,输入status检查状态 status

注意,HBase的元数据节点信息也是放在zookeeper,节点选举也是依赖zookeeper,所以需要先启动zookeeper

安装solr(自带版不需要安装) 用atlas的安装包中自带的solr安装包,启动就行 bin/solr start -c -z doit11:2181,doit22:2181,doit33:2181 -p 8984 -force

注意,这里带上zookeeper信息是因为solr所配套的hbase的元数据存储节点信息存储在zookeeper中,需要连接上去拿hbase的信息和数据 检查solr是否工作正常

初始化solr中数据(只需要做一次),这个操作类似hdfs的初始化

bin/solr create -c vertex_index -shards 1 -replicationFactor 1 -force bin/solr create -c edge_index -shards 1 -replicationFactor 1 -force /bin/solr create -c fulltext_index -shards 1 -replicationFactor 1 -force

注意看上述参数,这里数据也是使用shards,和kafka一样,使用数据切片来存放数据 注意,也有使用副本,relication factor,也就是说solr可以搭建集群。

配置和启动atlas 上传atlas编译好之后的安装包 到linux节点(本案例就是单节点,也可以搭建集群,不过一般公司使用单节点即可,稳妥一些就是双节点的小集群)修改配置文件 vi atlas-env.sh export JAVA_HOME=/opt/app/jdk1.8.0_191/ export MANAGE_LOCAL_HBASE=false (如果要使用内嵌的zk和hbase,则改为true) export MANAGE_LOCAL_SOLR=false (如果要是用内嵌的solr,则改为true) Export HBASE_CONF_DIR=/opt/apps/hbase-2.0.6/conf

vi atlas-application.properties

# Hbase地址配置 atlas.graph.storage.hostname=doit11:2181,doit22:2181,doit33:2181(如果使用内嵌hbase,则填写localhost:2181) # Solr地址配置 #Solr http mode properties atlas.graph.index.search.solr.mode=http atlas.graph.index.search.solr.http-urls=http://doit11:8984/solr(solr服务地址) # Kafka地址配置 atlas.notification.embedded=false (如果要使用内嵌的kafka,则改为true) atlas.kafka.zookeeper.connect=doit11:2181,doit22:2181,doit33:2181 atlas.kafka.bootstrap.servers=doit11:9092,doit22:9092,doit33:9092 ######### Server Properties ######### atlas.rest.address=http://doitedu01:21000 启动 bin/atlas_start.py

就是一个python脚本,注意,linux一些版本默认是安装了python的,但可能不是python3,如果版本不匹配,注意使用到python3 监听端口如下: netstat -nltp | grep 77214 打开atlas的web界面

3. 原理

架构

atlas主要就是2个功能 元数据注入

注入元数据信息到atlas中(本质是:写入元数据到atlas中) 注入方式:

通过atlas为数据系统开发好的hook来注入通过atlas自带的WEB-UI来人工填写元数据信息再注入、通过在自己的数据系统中调用atlas对外暴露的api,来灵活注入

注意,企业开发时,一般都需要进行web页面的自定义开发

元数据查询和使用

使用atlas中的元数据信息来为我们服务(本质是:从atlas中读、改元数据) 使用方式:

通过atlas自带的WEB-UI前端系统来查看、修改元数据通过调用atlas对外暴露的api,来开发自己的管理系统

4. 总结

atlas开源,但并没有提供安装包。atlas安装包需要自行根据企业需求,选择不同编译打包方式,打出的包也不同。atlas本身还是一个java web项目,有web页面,有数据存储(Janus graph),以及进行逻辑处理的server端。当需要处理数据和数据之间的联系时,使用图数据库会方便很多。
最新回复(0)