数仓元数据管理之Atlas简介与编译(2.1.0)

it2026-08-06  23

数仓元数据管理之Atlas

1. 背景

在数仓开发中,由于数仓一般都会对数据做分层,ODS、DWD、DWS、ADS。每一层都会有众多数据库和数据库表,如果需要对这些数据库和表有一个较清晰梳理,仅仅使用文字,文档等工具管理是比较繁琐且低效的。为什么需要对数仓中表和数据库做管理,因为当业务数据较多,业务变得复杂,并且数仓跟随业务迭代半年到一年之后,加上人员流动,文档不齐全等原因,数仓中表,数据库及其之间关系就会变得很难直观理解,很难梳理出清晰关系。这对于后续的数仓开发和维护是很不利的。前期很多公司一般不会使用软件专门做这个数仓中数据库和数据表的管理,也就是数仓的元数据管理。但随着规模和业务复杂化之后,之前使用文档,表格等工具来管理,就变得很复杂且低效了。atlas这类数仓元数据管理框架应运而生

2. atlas简介

官网https://atlas.apache.org/#/ atlas就是用来做元数据管理的的框架,可以看出本身是一个java web项目,归属于apache。注意,这是apache项目,本身和apache生态下的hadoop全家桶兼容性很好,官方文档中可以看出

3. atlas编译

在官网下载源码 https://atlas.apache.org/#/Downloads

注意,不提供安装包,需要自行下载源码进行编译打包

将下载好的源码压缩包上传到linux,解压 tar -zxf apache-atlas-2.01.0-sources.tar.gz -C /opt/app/

注意,需要先安装maven,因为这是使用maven开发的java web工程。maven3.6.3版本即可 配置好maven的环境变量 注意国内需要配置好maven的国内镜像,一般使用阿里,华为,清华等镜像 vi $M2_HOME/conf/settings.xml

<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>

把这个setting.xml 拷贝到 ~/.m2/

修改atlas源码工程的pom.xml,将hbase zookeeper hive等依赖的版本修改成自己环境中一致的版本(或者兼容的版本)

父工程pom文件 <zookeeper.version>3.4.14</zookeeper.version> <hbase.version>2.2.3</hbase.version> <solr.version>7.7.2</solr.version>

distro子工程pom文件 <hbase.tar>http://mirrors.tuna.tsinghua.edu.cn/apache/hbase/ h b a s e . v e r s i o n / h b a s e − {hbase.version}/hbase- hbase.version/hbase{hbase.version}-bin.tar.gz</hbase.tar> <solr.tar>http://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/ s o l r . v e r s i o n / s o l r − {solr.version}/solr- solr.version/solr{solr.version}.tgz</solr.tar>

执行maven编译打包

atlas可以使用内嵌的hbase-solr作为底层索引存储和搜索组件,也可以使用外置的hbase和solr 如果要使用内嵌的hbase-solr,则使用如下命令进行编译打包 cd apache-atlas-sources-2.1.0 export MAVEN_OPTS="-Xms2g -Xmx2g" mvn clean -DskipTests package -Pdist,embedded-hbase-solr

视网络速度,耐心等待,并且可能要反复重试几次,最好是能开一个速度不错的vpn atlas的webui子模块中依赖了nodejs,会从nodejs的中央仓库去下载相关依赖库

编译完成之后,会产生打包结果,所在位置是:源码目录中的新出现的distro/target目录

结果 注意,这里产出的有压缩包也有解压后的包。这里面的hook包,可以看到有各种平台的hook包。顾名思义,这就是钩子包,也就是各个大数据框架会提供各种生命周期回调函数,并且将相关信息以数据方式提供出来。这些钩子就可以去监听和接收数据
最新回复(0)