先说一些废话
之前的公司在数据中台的我的项目上调研决定启用了 Atlas 作为咱们数据血统治理的工具,让我给大家写了一份 Atlas 疾速入门的文档,所以在这里我将这篇文档以一个纯老手视角的形式再一次优化,心愿可能帮忙大家更好的疾速上手应用 Atlas。
什么是 Atlas
Atlas 为组织提供了凋谢的元数据管理和治理性能,以建设其数据资产的目录,对这些资产进行分类和治理,并为数据科学家,分析师和数据治理团队提供围绕这些数据资产的合作性能。
而如果想要对这些数据做好治理,光用文字、文档等货色是不够的,必须用图,Atlas 就是把元数据变成图的工具。
元数据管理应该具备的性能
- 搜寻和发现:数据表、字段、标签、应用信息
- 访问控制:访问控制组、用户、策略
- 数据血统:管道执行、查问
- 合规性:数据隐衷、合规性正文类型的分类
- 数据管理:数据源配置、摄取配置、保留配置、数据革除策略
- AI 可解释性、再现性:特色定义、模型定义、训练运行执行、问题陈说
- 数据操作:管道执行、解决的数据分区、数据统计
- 数据品质:数据品质规定定义、规定执行后果、数据统计
Atlas 在我的项目中产生的作用
- 数据血统治理在数仓中的重要性十分高,他们能够帮忙咱们十分疾速的查问到各种字段表之间的依赖关系
- 在咱们晓得数据血统之后,如果产生一些突发状况,比方某两个表产生的指标呈现了问题,就晓得只须要从新跑这两个表就能够从新产出指标
- 也就是说,哪里出了问题哪里重跑咱们的脚本文件即可,能够来说对咱们的数据治理提供了十分大的帮忙
个性
- Atlas 反对各种 Hadoop 和非 Hadoop 元数据类型
- 提供了丰盛的
REST API
进行集成 - 对数据血统的追溯达到了字段级别,这种技术还没有其实相似框架能够实现
-
对权限也有很好的管制
什么是
REST API
- REST API 是一组对于如何构建 Web 应用程序 API 的架构规定、规范或领导,REST API 遵循 API 准则的架构格调
- REST 是专门针对 Web 应用程序而设计的,其目标在于升高开发的复杂度,进步零碎的可伸缩性
架构
架构阐明
阐明元数据的存储是 hbase,检索应用的索引 solr,数据起源次要是 hive 和 hbase,数据和 atlas 之间的通信应用的是 kafka
元数据存储:hbase,能够采集也能够导出
检索索引:solr
数据起源:hive(重点),hbase(重点),sqoop,falcon,storm
数据和 atlas 的通信通道:基于 kafka 的消息传递接口
Admin UI:web 界面操作
Ranger Tag Based Policies:权限治理模块
Bussiness Type:业务分类
API:所有性能通过 REST API 向最终用户裸露,该 API 容许创立,更新和删除类型和实体
Graph Engine 图形引擎:应用 Graph 模型长久保留它治理的元数据对象
Type System 类型零碎:用户为他们想要治理的元数据对象定义模型,Type System 称为实体和类型实例,示意受治理的理论元数据对象
组件介绍
- 采纳 Hbase 存储元数据
- 采纳 Solr 实现索引
- Ingest/Export 采集导出组件,Type System 类型零碎,Graph Engine 图形引擎,独特形成 Atlas 的外围机制
- 所有性能通过 API 向用户提供,也能够通过 Kafka 音讯零碎进行集成
- Atlas 反对各种源获取元数据:Hive,Hbase,Sqoop,Storm
- 还有优良的 UI 反对
装置和依赖
环境筹备
jdk8、hadoop@2.7.2
zookeeper@3.4.10
kafka@0.11.0.2
hbase@1.3.1
solr@5.2.1
hive@1.2.1、mysql
azkaban@2.5.0
atlas@0.84
依赖集成
-
Atlas 集成内部 Hbase,次要是通过批改以下配置文件来实现
- 进入
/soft/atlas/conf/atlas-application.properties
->atlas.graph.storage.hostname = 集群主机名
,批改 atals 存储数据主机 - 进入
/soft/atals/conf/hbase
,增加 hbase 集群的配置文件到${Atlas_Home}
,示例命令ln -s /soft/hbase/conf/ /soft/atlas/conf/hbase/
,相当于建设软连贯 - 在
/soft/atlas/conf/atlas-env.sh
中增加HBASE_CONF_DIR
,也就是 Hbase 配置文件门路export HBASE_CONF_DIR = /soft/atlas/conf/hbase/conf
- 进入
- Atlas 集成内部 Slor,参考视频大数据技术之 atlas 视频教程
- Atlas 集成内部 Kafka,参考视频大数据技术之 atlas 视频教程
- Atlas 集成内部 Hive,参考视频大数据技术之 atlas 视频教程
- Atlas 批改 WEB UI 拜访端口之类的,参考视频大数据技术之 atlas 视频教程
什么是 ln -s
命令
ln 命令是 linux 零碎中一个十分重要命令,英文全称是 ”link”,即链接的意思,它的性能是为某一个文件在另外一个地位建设一个同步的链接
集群启动程序
Hadoop -> Zookeeper -> Kafka -> Hbase -> Solr -> 重启 Atlas 服务
导入 Hive 元数据
次要是通过执行 .sh
脚本文件来导入,后续能够引入Azkaban 来做全流程执行 job
- 生成数据
-
编写 Azkaban 程序运行 job
- import.job
- ods.job
- dwd.job
- dws.job
- ads.job
- export.job
- 将上述 6 个文件压缩成一个指标 job 的文件,例如
target-job.zip
- 创立 Azkaban 工程并执行,后续就能够通过 Atals 动静查看各种血统依赖关系,次要是图形化的界面
应用 Atlas 的 REST API 进行二次开发
Atlas 有丰盛的凋谢接口供大家应用以进行二次开发,对于咱们公司后续如果有十分重大的个性化需要我的项目的开发,可能提供很好的帮忙,这里是官网的 api 阐明文档地址
WEB UI 界面上的重点操作阐明
登录界面(Login)
次要会有公司配发的不同权限的应用账号和明码
搜寻界面(Search)
在 Search 界面中提供了 Basic(根底)和 Advanced(高级)两种 UI 界面。
可查问的数据类型包含但不限于 hive_db、hive_table、hdfs_path
等等,点击橘色方框中的箭头即可查看抉择可供查找的数据类型。
根底界面(Basic)
在 Basic 界面中,能够进行更加细粒度的划分查问,还能够保留罕用的查问条件组合。
包含的查问条件有:Type(查问的数据类型)、Classification(查问数据的所属分类)、Term(查问数据的术语)、Text(查问数据的 name),
在 Basic 查问界面中还能够对 Type
和ClassiFication
进行。
高级界面(Advanced)
在 Advanced 界面中,查问条件包含:Type(查问的数据类型)、Query(查问语句),也能够保留罕用的查问条件组合
分类界面(Classification)
分类界面中能够进行分类标签的治理,在这个界面中能够新建一个分类,或者在一个分类下新建出一个小分类,也能够删除一个已有的分类,
通过分类的设定,并为数据增加相应的分类标签,能够不便数据的治理与查找。
查看分类
点击相应的分类便能够看到领有该分类和其子分类的数据,而在查问界面中点击数据中的分类标签,即可跳转到分类界面的相应分类下
增加分类
在 Atlas 中一个数据能够领有多个分类标签,在查问界面中,能够通过在数据的 Classification
列点击 +
为该数据增加分类
分类流传选项(propagate)
分类流传使数据所关联的分类能延血缘关系,使其这个数据的后辈也能失去其父类数据的分类标签。
为第一个数据打上分类标签后其数据的子类也失去了该分类的标签,
更改第一个数据的分类标签,子类的分类标签也会受到更改,删除第一个数据的分类标签,其子类对应的分类标签也会删除。
总结来说数据的分类标签能沿着血缘关系流传到其子类
- 状况一:删除其父类实体时,子类所失去的父类的标签会被删除
- 状况二:当子类到父类之间的血缘关系被毁坏时,子类也会失去父类的分类标签
- 状况三:即便子类到父类之间的一条血统链被毁坏,只有还有另一条血统链存在且能使子类连贯到父类,那么子类还能保留其父类的分类标签
术语表界面(Glossary),也就是词汇
在 Atlas 的 Glossary 界面下,能够创立术语表,并且在术语表中能够创立一些 ” 单词 ”,这些 ” 单词 ” 能彼此进行关联和分类。
以便业务用户在应用的时候,即便这些 ” 单词 ” 在不同的术语表中也能很好的了解它们。此外,这些术语也是能够映射到数据资产中的,即能够给数据增加术语标签。
术语表形象出了和数据相干的专业术语,使得用户能以他们更相熟的形式去查找和应用数据。
须要留神的是如果为数据增加术语时,该术语曾经设置了分类标签,那么这个术语的分类标签会被数据继承:
即数据的分类标签中,会被加上术语的分类标签,这样做是因为,咱们能够为术语独自创立一个分类,而后为数据打上术语标签时,数据也会继承这个分类。
而后咱们通过查看这个分类的数据时就能找到被打上这个术语标签的所有数据及术语自身。
术语视图容许用户执行以下术语操作
- 创立,更新和删除术语
- 增加,删除和更新与术语关联的分类
- 增加,删除和更新术语的分类
- 在术语之间创立各种关系
-
查看与术语关联的实体
类别视图容许用户执行以下术语操作
- 创立,更新和删除类别和子类别
- 将术语与类别相关联
- Category 的作用就是不便术语的治理与应用
如何进行权限治理
配置文件模式配置权限治理,也是咱们公司应用的模式
-
启用
Atlas Simple Authprizer
权限治理 须要在/atlas/conf/
中配置文件 atlas-application.properties`atlas.authorizer.impl = simple atlas.authorizer.simple.authz.policy.file = /atlas/conf/atlas-simple-authz-policy.json
-
在
/atlas/conf
目录中有两个文件atlas-simple-authz-policy.json
和users-credentials.properties
atlas-simple-authz-policy.json
文件用于配置权限、用户权限、用户组权限users-credentials.properties
用于配置用户名、用户所属用户组、用户明码,须要留神的是:明码采纳 sha256 编码
应用内部插件实现可视化权限治理
-
应用 ranger 能够实现一个可视化的 Atlas 权限的治理,须要在
/atlas/conf
目录中配置atlas-application.properties
atlas.authorizer.impl = ranger
- Atlas Ranger Authorizer 反对三种资源层次结构,以管制对类型,实体和治理操作的拜访
- Ranger 会生成审核日志,蕴含用户拜访的详细信息
我是 fx67ll.com,如果您发现本文有什么谬误,欢送在评论区探讨斧正,感谢您的浏览!
如果您喜爱这篇文章,欢送拜访我的 本文 github 仓库地址,为我点一颗 Star,Thanks~ :)
转发请注明参考文章地址,非常感谢!!!