先说一些废话

之前的公司在数据中台的项目上调研决定启用了Atlas作为我们数据血缘管理的工具,让我给大家写了一份Atlas快速入门的文档,所以在这里我将这篇文档以一个纯新手视角的方式再一次优化,希望能够帮助大家更好的快速上手使用Atlas。

什么是Atlas

Atlas为组织提供了开放的元数据管理和治理功能,以建立其数据资产的目录,对这些资产进行分类和治理,并为数据科学家,分析师和数据治理团队提供围绕这些数据资产的协作功能。

而如果想要对这些数据做好管理,光用文字、文档等东西是不够的,必须用图,Atlas就是把元数据变成图的工具。

元数据管理应该具有的功能

  1. 搜索和发现:数据表、字段、标签、使用信息
  2. 访问控制:访问控制组、用户、策略
  3. 数据血缘:管道执行、查询
  4. 合规性:数据隐私、合规性注释类型的分类
  5. 数据管理:数据源配置、摄取配置、保留配置、数据清除策略
  6. AI 可解释性、再现性:特征定义、模型定义、训练运行执行、问题陈述
  7. 数据操作:管道执行、处理的数据分区、数据统计
  8. 数据质量:数据质量规则定义、规则执行结果、数据统计

Atlas在项目中产生的作用

  1. 数据血缘管理在数仓中的重要性非常高,他们可以帮助我们非常快速的查询到各种字段表之间的依赖关系
  2. 在我们知道数据血缘之后,如果发生一些突发状况,比如某两个表产生的指标出现了问题,就知道只需要重新跑这两个表就可以重新产出指标
  3. 也就是说,哪里出了问题哪里重跑我们的脚本文件即可,可以来说对我们的数据治理提供了非常大的帮助

特性

  1. Atlas支持各种Hadoop和非Hadoop元数据类型
  2. 提供了丰富的REST API进行集成
  3. 对数据血缘的追溯达到了字段级别,这种技术还没有其实类似框架可以实现
  4. 对权限也有很好的控制

什么是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 称为实体和类型实例,表示受管理的实际元数据对象

组件介绍

  1. 采用Hbase存储元数据
  2. 采用Solr实现索引
  3. Ingest/Export 采集导出组件,Type System类型系统,Graph Engine图形引擎,共同构成Atlas的核心机制
  4. 所有功能通过API向用户提供,也可以通过Kafka消息系统进行集成
  5. Atlas支持各种源获取元数据:Hive,Hbase,Sqoop,Storm
  6. 还有优秀的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

依赖集成

  1. 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
  2. Atlas集成外部Slor,参考视频大数据技术之atlas视频教程
  3. Atlas集成外部Kafka,参考视频大数据技术之atlas视频教程
  4. Atlas集成外部Hive,参考视频大数据技术之atlas视频教程
  5. Atlas修改 WEB UI 访问端口之类的,参考视频大数据技术之atlas视频教程

什么是ln -s命令

ln命令是linux系统中一个非常重要命令,英文全称是"link",即链接的意思,它的功能是为某一个文件在另外一个位置建立一个同步的链接

集群启动顺序

Hadoop -> Zookeeper -> Kafka -> Hbase -> Solr -> 重启Atlas服务

导入Hive元数据

主要是通过执行.sh脚本文件来导入,后续可以引入Azkaban来做全流程执行job

  1. 生成数据
  2. 编写Azkaban程序运行job
    • import.job
    • ods.job
    • dwd.job
    • dws.job
    • ads.job
    • export.job
    • 将上述6个文件压缩成一个指标job的文件,例如target-job.zip
  3. 创建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查询界面中还可以对TypeClassiFication进行。

高级界面(Advanced)

在Advanced界面中,查询条件包括:Type(查询的数据类型)、Query(查询语句),也可以保存常用的查询条件组合

分类界面(Classification)

分类界面中可以进行分类标签的管理,在这个界面中可以新建一个分类,或者在一个分类下新建出一个小分类,也可以删除一个已有的分类,

通过分类的设定,并为数据添加相应的分类标签,可以方便数据的管理与查找。

查看分类

点击相应的分类便可以看到拥有该分类和其子分类的数据,而在查询界面中点击数据中的分类标签,即可跳转到分类界面的相应分类下

添加分类

在Atlas中一个数据可以拥有多个分类标签,在查询界面中,可以通过在数据的Classification列点击+为该数据添加分类

分类传播选项(propagate)

分类传播使数据所关联的分类能延血缘关系,使其这个数据的后代也能得到其父类数据的分类标签。

为第一个数据打上分类标签后其数据的子类也得到了该分类的标签,

更改第一个数据的分类标签,子类的分类标签也会受到更改,删除第一个数据的分类标签,其子类对应的分类标签也会删除。

总结来说数据的分类标签能沿着血缘关系传播到其子类

  1. 情况一:删除其父类实体时,子类所得到的父类的标签会被删除
  2. 情况二:当子类到父类之间的血缘关系被破坏时,子类也会失去父类的分类标签
  3. 情况三:即使子类到父类之间的一条血缘链被破坏,只要还有另一条血缘链存在且能使子类连接到父类,那么子类还能保存其父类的分类标签

术语表界面(Glossary),也就是词汇

在Atlas的Glossary界面下,可以创建术语表,并且在术语表中可以创建一些"单词",这些"单词"能彼此进行关联和分类。

以便业务用户在使用的时候,即使这些"单词"在不同的术语表中也能很好的理解它们。此外,这些术语也是可以映射到数据资产中的,即可以给数据添加术语标签。

术语表抽象出了和数据相关的专业术语,使得用户能以他们更熟悉的方式去查找和使用数据。

需要注意的是如果为数据添加术语时,该术语已经设置了分类标签,那么这个术语的分类标签会被数据继承:

即数据的分类标签中,会被加上术语的分类标签,这样做是因为,我们可以为术语单独创建一个分类,然后为数据打上术语标签时,数据也会继承这个分类。

然后我们通过查看这个分类的数据时就能找到被打上这个术语标签的所有数据及术语本身。

术语视图允许用户执行以下术语操作

  1. 创建,更新和删除术语
  2. 添加,删除和更新与术语关联的分类
  3. 添加,删除和更新术语的分类
  4. 在术语之间创建各种关系
  5. 查看与术语关联的实体

类别视图允许用户执行以下术语操作

  1. 创建,更新和删除类别和子类别
  2. 将术语与类别相关联
  3. Category的作用就是方便术语的管理与使用

如何进行权限管理

配置文件模式配置权限管理,也是我们公司使用的模式

  1. 启用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
  1. /atlas/conf目录中有两个文件atlas-simple-authz-policy.jsonusers-credentials.properties

    • atlas-simple-authz-policy.json 文件用于配置权限、用户权限、用户组权限
    • users-credentials.properties 用于配置用户名、用户所属用户组、用户密码,需要注意的是:密码采用sha256编码

使用外部插件实现可视化权限管理

  1. 使用ranger可以实现一个可视化的Atlas权限的管理,需要在/atlas/conf目录中配置atlas-application.properties
atlas.authorizer.impl = ranger
  1. Atlas Ranger Authorizer支持三种资源层次结构,以控制对类型,实体和管理操作的访问
  2. Ranger会生成审核日志,包含用户访问的详细信息

我是 fx67ll.com,如果您发现本文有什么错误,欢迎在评论区讨论指正,感谢您的阅读!

如果您喜欢这篇文章,欢迎访问我的 本文github仓库地址,为我点一颗Star,Thanks~

转发请注明参考文章地址,非常感谢!!!

Atlas快速入门的更多相关文章

  1. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  2. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  3. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  4. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  5. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  6. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  7. Mybatis框架 的快速入门

    MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...

  8. grunt快速入门

    快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...

  9. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  10. 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

随机推荐

  1. Vue——自动切换图片

    利用属性指令 + setInterval(是一个实现定时调用的函数) <!DOCTYPE html> <html lang="en"> <head&g ...

  2. 容器启动流程(containerd 和 runc)

    启动流程 containerd 作为一个 api 服务,提供了一系列的接口供外部调用,比如创建容器.删除容器.创建镜像.删除镜像等等.使用 docker 和 ctr 等工具,都是通过调用 contai ...

  3. SRC信息收集方法论

    "感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友.您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!" SRC信息 ...

  4. HL7消息类型

    HL7消息有很多不同的类型,每种都有其自己的独特用途和消息内容.以下是常见的HL7消息类型的列表. Message Type Description HL7 ADT Admit, Discharge ...

  5. 力扣438(Java)-找到字符串中所有字母异位词(中等)

    题目: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引.不考虑答案输出的顺序. 异位词 指由相同字母重排列形成的字符串(包括相同的字符串). 示例 1: ...

  6. 地址标准化服务AI深度学习模型推理优化实践

    简介: 深度学习已在面向自然语言处理等领域的实际业务场景中广泛落地,对它的推理性能优化成为了部署环节中重要的一环.推理性能的提升:一方面,可以充分发挥部署硬件的能力,降低用户响应时间,同时节省成本:另 ...

  7. [FAQ] Windows 终端 `git diff` 出现 LF 空格 ^M 符号, 处理方式

      可能是终端内的换行配置和 IDE 当中的不一致. 比如 PHPStorm 的: Git 终端使用 git config core.autocrlf 查看是 true 还是 false. 是 tru ...

  8. [DApp] Moralis 无服务架构方式构建 DApp

    Moralis 提供的使用功能包括三个方面: 进一步封装Web3功能的 Moralis SDK,极大方便了开发者对于DApp基础功能的开发,比如 MetaMask登录验证,签名,IPFS集成,DApp ...

  9. 批量解压上传SAP Note

    最近在做印度GST相关的东西,需要手动给系统实施上百个SAP Note,十分繁琐. 标准事务代码SNOTE只支持每次上传一个Note,逐个上传大量Note会很麻烦,为此摸索出一个批量解压上传的流程,下 ...

  10. NVCC编译选项含义解析

    NVCC编译 nvcc 是cuda程序的编译器. 1. 编译阶段 用于指定编译阶段最基本的编译参数. -c: 同gcc,只预处理.编译和汇编为.o文件,不link -lib:生成一个库文件,windo ...