数据治理之元数据管理的利器——Atlas⼊门宝典
随着数字化转型的⼯作推进,数据治理的⼯作已经被越来越多的公司提上了⽇程。作为Hadoop⽣态最紧密的元数据管理与发现⼯具,Atlas在其中扮演着重要的位置。但是其官⽅⽂档不是很丰富,也不够详细。所以整理了这份⽂档供⼤家学习使⽤。
本⽂档基于Atlas2.1.0版本,整理⾃部分官⽹内容,各种博客及实践过程。⽂章较长,建议收藏。新版本的⽂档请关注⼤数据流动,会持续的更新~
本⽂档共分为8个部分,层级结构如下图所⽰。
⽂档版权为⼤数据流动所有,请勿商⽤。相关技术问题以及安装包可以联系笔者独孤风加⼊相关技术交流讨论获取。
⼀、数据治理与元数据管理
为什么要做数据治理?业务繁多,数据繁多,业务数据不断迭代。⼈员流动,⽂档不全,逻辑不清楚,对于数据很难直观理解,后期很难维护。
在⼤数据研发中,原始数据就有着⾮常多的数据库,数据表。
⽽经过数据的聚合以后,⼜会有很多的维度表。
近⼏年来数据的量级在疯狂的增长,由此带来了系列的问题。作为对⼈⼯智能团队的数据⽀撑,我们听到的最多的质疑是“正确的数据集”,他们需要正确的数据⽤于他们的分析。我们开始意识到,虽然我们构建了⾼度可扩展的数据存储,实时计算等等能⼒,但是我们的团队仍然在浪费时间寻合适的数据集来进⾏分析。
也就是我们缺乏对数据资产的管理。事实上,有很多公司都提供了开源的解决⽅案来解决上述问题,这也就是数据发现与元数据管理⼯具。
简单地说,元数据管理是为了对数据资产进⾏有效的组织。它使⽤元数据来帮助管理他们的数据。它还可以帮助数据专业⼈员收集、组织、访问和丰富元数据,以⽀持数据治理。
三⼗年前,数据资产可能是 Oracle 数据库中的⼀张表。然⽽,在现代企业中,我们拥有⼀系列令⼈眼花缭乱的不同类型的数据资产。可能是关系数据库或 NoSQL 存储中的表、实时流数据、 AI 系统中的功能、指标平台中的指标,数据可视化⼯具中的仪表板。
现代元数据管理应包含所有这些类型的数据资产,并使数据⼯作者能够更⾼效地使⽤这些资产完成⼯作。
所以,元数据管理应具备的功能如下:
搜索和发现:数据表、字段、标签、使⽤信息
访问控制:访问控制组、⽤户、策略
数据⾎缘:管道执⾏、查询
合规性:数据隐私/合规性注释类型的分类
数据管理:数据源配置、摄取配置、保留配置、数据清除策略
AI 可解释性、再现性:特征定义、模型定义、训练运⾏执⾏、问题陈述
数据操作:管道执⾏、处理的数据分区、数据统计
数据质量:数据质量规则定义、规则执⾏结果、数据统计
下⾯介绍元数据管理的架构实现,不同的架构都对应了不同的开源实现。
下图描述了第⼀代元数据架构。它通常是⼀个经典的单体前端(可能是⼀个Flask 应⽤程序),连接到主要存储进⾏查询(通常是MySQL/Postgres),⼀个⽤于提供搜索查询的搜索索引(通常是Elasticsearch),并且对于这种架构的第1.5 代,也许⼀旦达到关系数据库的“递归查询”限制,就使⽤了处理谱系(通常是Neo4j)图形查询的图形索引。
很快,第⼆代的架构出现了。单体应⽤程序已拆分为位于元数据存储数据库前⾯的服务。该服务提供了⼀个 API,允许使⽤推送机制将元数据写⼊系统。
第三代架构是基于事件的元数据管理架构,客户可以根据他们的需要以不同的⽅式与元数据数据库交互。
元数据的低延迟查、对元数据属性进⾏全⽂和排名搜索的能⼒、对元数据关系的图形查询以及全扫描和分析能⼒。
Apache Atlas 就是采⽤的这种架构,并且与Hadoop ⽣态系统紧密耦合。
下图是当今元数据格局的简单直观表⽰:
(包含部分⾮开源⽅案)
其他⽅案可作为调研的主要⽅向,但不是本⽂讨论的重点。
⼆、Apache Atlas简介
在当今⼤数据的应⽤越来越⼴泛的情况下,数据治理⼀直是企业⾯临的巨⼤问题。
⼤部分公司只是单纯的对数据进⾏了处理,⽽数据的⾎缘,分类等等却很难实现,市场上也急需要⼀个专注于数据治理的技术框架,这时Atlas应运⽽⽣。
Atlas是Hadoop的数据治理和元数据框架。
Atlas是⼀组可扩展和可扩展的核⼼基础治理服务,使企业能够有效,⾼效地满⾜Hadoop中的合规性要求,并允许与整个企业数据⽣态系统集成。
Apache Atlas为组织提供了开放的元数据管理和治理功能,以建⽴其数据资产的⽬录,对这些资产进⾏分类和治理,并为数据科学家,分析师和数据治理团队提供围绕这些数据资产的协作功能。
如果想要对这些数据做好管理,光⽤⽂字、⽂档等东西是不够的,必须⽤图。Atlas就是把元数据变成图的⼯具。
Atlas⽀持各种Hadoop和⾮Hadoop元数据类型
提供了丰富的REST API进⾏集成
对数据⾎缘的追溯达到了字段级别,这种技术还没有其实类似框架可以实现
对权限也有很好的控制
Atlas包括以下组件:
采⽤Hbase存储元数据
采⽤Solr实现索引
Ingest/Export 采集导出组件 Type System类型系统 Graph Engine图形引擎共同构成Atlas的核⼼机制
所有功能通过API向⽤户提供,也可以通过Kafka消息系统进⾏集成
Atlas⽀持各种源获取元数据:Hive,Sqoop,Storm。。。
还有优秀的UI⽀持
三、整体架构
Atlas架构图如下:
Atlas核⼼包含以下组件:
类型(Type)系统: Atlas允许⽤户为他们想要管理的元数据对象定义模型。该模型由称为“类型”的定义组成。称为“实体”的“类型”实例表⽰受管理的实际元数据对象。Type System是⼀个允许⽤户定义和管理类型和实体的组件。开箱即⽤的Atlas管理的所有元数据对象(例如Hive表)都使⽤类型建模并表⽰为实体。要在Atlas中存储新类型的元数据,需要了解类型系统组件的概念。
需要注意的⼀个关键点是Atlas中建模的⼀般特性允许数据管理员和集成商定义技术元数据和业务元数据。也可以使⽤Atlas的功能定义两者之间的丰富关系。
图形引擎: Atlas在内部使⽤Graph模型持久保存它管理的元数据对象。这种⽅法提供了很⼤的灵活性,可以有效地处理元数据对象之间的丰富关系。图形引擎组件负责在Atlas类型系统的类型和实体之间进⾏转换,以及底层图形持久性模型。除了管理图形对象之外,图形引擎还为元数据对象创建适当的索引,以便可以有效地搜索它们。Atlas使⽤JanusGraph存储元数据对象。
暴雪中国最新发声明采集/导出:采集组件允许将元数据添加到Atlas。同样,“导出”组件将Atlas检测到的元数据更改公开为事件。消费者可以使⽤这些更改事件来实时响应元数据的变更。
在Atlas中,⽤户可以使⽤以下的两种⽅式管理元数据:
API: Atlas的所有功能都通过REST API向最终⽤户暴露,该API允许创建,更新和删除类型和实体。它也是查询和发现Atlas管理的类型和实体的主要机制。
Messaging: 除了API之外,⽤户还可以选择使⽤基于Kafka的消息传递接⼝与Atlas集成。这对于将元数据对象传递到Atlas以及使⽤Atlas使⽤可以构建应⽤程序的元数据更改事件都很有⽤。如果希望使⽤与Atlas更松散耦合的集成来实现更好的可伸缩性,可靠性等,则消息传递接⼝特别有⽤.Atlas使⽤Apache Kafka作为通知服务器,⽤于钩⼦和元数据通知事件的下游消费者之间的通信。事件由钩⼦和Atlas写⼊不同的Kafka主题。
Atlas⽀持开箱即⽤的多种元数据源集成。未来还将增加更多集成。⽬前,Atlas⽀持从以下来源提取和管理元数据:
HBase
Hive
Sqoop
Storm
Kafka
集成意味着两件事:Atlas定义的元数据模型⽤于表⽰这些组件的对象。 Atlas提供了从这些组件中摄取元数据对象的组件(在某些情况下实时或以批处理模式)。
Atlas管理的元数据被各种应⽤程序使⽤,以满⾜许多治理需求。
arraylist转stringAtlas Admin UI: 该组件是⼀个基于Web的应⽤程序,允许数据管理员和科学家发现和注释元数据。这⾥最重要的是搜索界⾯和类似SQL的查询语⾔,可⽤于查询Atlas管理的元数据类型和对象。 Admin UI使⽤Atlas的REST API来构建其功能。
Tag Based Policies:Apache Ranger是Hadoop⽣态系统的⾼级安全管理解决⽅案,可与各种Hadoop组件进⾏⼴泛集成。通过与Atlas集成,Ranger允许安全管理员定义元数据驱动的安全策略以实现有效的治理。 Ranger是Atlas通知的元数据更改事件的使⽤者。
四、编译、部署与安装
Atlas的安装坑较多。本教程将详细介绍Atlas2.1.0整个安装过程。
⽐较难受的是,Atlas不提供安装包,下载的是源码包,需要⾃⾏编译打包。
下载对应版本的源码包本⽂使⽤的是 2.1.0版本
国内站点速度要快⼀些
注意,需要先安装maven,因为这是使⽤maven开发的java web⼯程。maven3.6.3版本即可
⼀些下载地址
上传到linux的/usr/local⽬录
cd /usr/local
解压⽂件
tar -zxvf apache-maven-3.6.
配置环境变量
vi /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=MAVEN_HOME/bin:PATH
刷新环境变量
source /etc/profile
检查版本
mvn -v
配置好maven的环境变量
注意国内需要配置好maven的国内镜像,⼀般使⽤阿⾥,华为,清华等镜像
vi /usr/local/apache-maven-3.6.3/l
<mirror>
<id>alimaven</id>
<name>aliyun maven</name> <url>maven.aliyun/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
把这个l 拷贝到 ~/.m2/
l .m2/
解压源码包
tar -zxvf apache-atlas-2.1.
将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>
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
不⽤内置就这样 mvn clean -DskipTests package -Pdist
改完路径还会⾮常快的耐⼼等待
atlas的webui⼦模块中依赖了nodejs,会从nodejs的中央仓库去下载相关依赖库
编译完成之后,会产⽣打包结果,所在位置是:源码⽬录中的新出现的distro/target⽬录
注意,这⾥产出的有压缩包也有解压后的包。这⾥⾯的hook包,可以看到有各种平台的hook包。
伦勃朗夜巡高清图顾名思义,这就是钩⼦包,也就是各个⼤数据框架会提供各种⽣命周期回调函数,并且将相关信息以数据⽅式提供出来。这些钩⼦就可以去监听和接收数据
如果没有错误并看到⼀排success就是成功了
在完成Atlas编译以后,就可以进⾏Atlas的安装了。Atlas的安装主要是安装Atlas的Server端,也就Atlas的管理页⾯,并确保Atlas与Kafka Hbase Solr等组件的集成。Atlas的系统架构如下,在确保底层存储与UI界⾯正常后,之后就可以进⾏与Hive等组件的集成调试了。
在完成Atlas编译以后,就可以进⾏Atlas的安装了。Atlas的安装主要是安装Atlas的Server端,也就Atlas的管理页⾯,并确保Atlas与Kafka Hbase Solr等组件的集成。在确保底层存储与UI界⾯正常后,之后就可以进⾏与Hive等组件的集成调试了。
1、环境准备
塞尔达传说 旷野之息安装之前先要准备好
JDK1.8
Zookeeper
Kafka
Hbase
Solr
在启动Atlas时会配置这些环境变量的地址,所以⼀定要确保以上组件正常运⾏。
由于在编译时可以选择内部集成,所以这些Atlas是可以⾃带的,但是JDK⼀定要安装好。
在安装Altas中,需要Solr 预先创建好collection
bin/solr create -c vertex_index -shards 3 -replicationFactor 2
bin/solr create -c edge_index -shards 3 -replicationFactor 2
bin/solr create -c fulltext_index -shards 3 -replicationFactor 2
在solr中验证创建成功。
2、安装Atlas
到编译好的包的路径下 apache-atlas-sources-2.1.0/distro/targetmysql入门基础教程
将⽣成好的安装包 apache-atlas-2.1. 拷贝到⽬标路径下。
解压:
tar -zxvf apache-atlas-2.1.
3、修改配置
进⼊conf⽬录下:
vi atlas-env.sh
在此指定JAVA_HOME和是否要⽤内嵌启动
export JAVA_HOME=/opt/jdk1.8.0_191/
export MANAGE_LOCAL_HBASE=true
export MANAGE_LOCAL_SOLR=true
如果使⽤内嵌,那么配置结束,直接去启动Atlas
但是⼤部分时候,需要使⽤已经有的组件进⾏集成,所以设置为false。export JAVA_HOME=/opt/jdk1.8.0_191/
export MANAGE_LOCAL_HBASE=false
export MANAGE_LOCAL_SOLR=false
#注意修改Hbase配置⽂件路径
export HBASE_CONF_DIR=/opt/hbase/conf
修改其他配置
vim atlas-application.properties
这⾥就是设置Hbase Solr等配置
#Hbase地址就是Hbase配置的zookeeper地址
#solr服务器地址
#kafka地址
t=slave01:2181,slave02:2181,slave03:2181 atlas.kafka.bootstrap.servers=slave01:9092,slave02:9092,slave03:9092
c语言socket指定发送接口#atlas地址
bin/atlas_start.py
启动成功后访问:
admin/admin登录
五、页⾯功能介绍
Atlas的页⾯功能⾮常的丰富,可以进⾏元数据的管理及数据⾎缘的展⽰。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论