1、Atlas的基本概述
谈到数据治理,自然离不开元数据。元数据(Metadata),用一句话定义就是:描述数据的数据。元数据打通了数据源、数据仓库、数据应用,记录了数据从产生到消费的全过程。因此,数据治理的核心就是元数据管理
。
数据的真正价值在于数据驱动决策,通过数据指导运营。通过数据驱动的方法判断趋势,帮助我们发现问题,继而推动创新或产生新的解决方案。随着企业数据爆发式增长,数据体量越来越难以估量,我们很难说清楚我们到底拥有哪些数据,这些数据从哪里来,到哪里去,发生了什么变化,应该如何使用它们。因此元数据管理(数据治理)成为企业级数据湖不可或缺的重要组成部分。
可惜很长一段时间内,市面都没有成熟的数据治理解决方案。直到2015年,Hortonworks终于坐不住了,约了一众小伙伴公司倡议:咱们开始整个数据治理方案吧。然后,包含数据分类、集中策略引擎、数据血缘、安全和生命周期管理功能的Atlas应运而生。(PS:另一个应用的较多的元数据开源项目是Linkedin 在2016年新开源的项目:WhereHows
)Atlas目前最新的版本为2018年9月18日发布的1.0.0
版本。
Atlas 是一个可伸缩和可扩展的核心基础治理服务集合 ,使企业能够有效地和高效地满足 Hadoop 中的合规性要求,并允许与整个企业数据生态系统的集成。
Apache Atlas为组织提供开放式元数据管理和治理功能,用以构建其数据资产目录,对这些资产进行分类和管理,并为数据科学家,数据分析师和数据治理团队提供围绕这些数据资产的协作功能。
2、Atlas的架构概述
Core:核心模块
核心模块当中又包含以下几大模块:
Type System:类型系统
Atlas允许用户为他们要管理的元数据对象定义模型。该模型由称为“类型”的定义组成。称为“实体”的“类型”实例代表所管理的实际元数据对象。类型系统是允许用户定义和管理类型和实体的组件。开箱即用的Atlas管理的所有元数据对象(例如,像Hive表一样)均使用类型进行建模,并表示为实体。为了在Atlas中存储新类型的元数据,需要了解类型系统组件的概念。
Graph Engine:图形引擎
在内部,Atlas保留使用Graph模型管理的元数据对象。这种方法提供了极大的灵活性,并可以有效处理元数据对象之间的丰富关系。图引擎组件负责在Atlas类型系统的类型和实体以及基础图持久性模型之间进行转换。除了管理图形对象之外,图形引擎还为元数据对象创建适当的索引,以便可以高效地搜索它们。Atlas使用JanusGraph存储元数据对象。
Ingest / Export:提取/导出
“提取”组件允许将元数据添加到Atlas。同样,导出组件将Atlas检测到的元数据更改公开为事件。消费者可以使用这些更改事件来实时响应元数据更改
Integration:元数据管理集成模块
用户可以使用两种方法在Atlas中管理元数据:
API:
Atlas的所有功能都通过REST API向最终用户公开,该API允许创建,更新和删除类型和实体。它也是查询和发现Atlas管理的类型和实体的主要机制。
Messaging:
除了API,用户还可以选择使用基于Kafka的消息传递接口与Atlas集成。这对于将元数据对象传达给Atlas以及从Atlas消耗元数据更改事件(用于构建应用程序)都是很有用的。如果有人希望使用与Atlas的松散耦合集成,以实现更好的可伸缩性,可靠性等,则该消息传递接口特别有用。Atlas使用Apache Kafka作为通知服务器,用于挂钩和元数据通知事件的下游使用者之间的通信。这些事件由钩子和Atlas编写,涉及不同的Kafka主题。
Metadata Sources元数据源
Atlas支持与许多现成的元数据源集成。将来还将添加更多集成。当前,Atlas支持从以下来源提取和管理元数据:
HBase
Hive
Sqoop
Storm
Kafka
集成意味着两件事:Atlas原生定义了一些元数据模型来表示这些组件的对象。Atlas提供了一些组件,可以从这些组件(实时或在某些情况下为批处理模式)中提取元数据对象
APPS 应用领域
Atlas管理的元数据被各种应用程序使用,以满足许多治理用例。
Atlas Admin UI:此组件是一个基于Web的应用程序,允许数据管理员和科学家发现和注释元数据。这里最重要的是搜索界面和类似SQL的查询语言,可用于查询Atlas管理的元数据类型和对象。管理员界面使用Atlas的REST API来构建其功能。
基于标签的策略:Apache Ranger是针对Hadoop生态系统的高级安全管理解决方案,与各种Hadoop组件广泛集成。通过与Atlas集成,Ranger使安全管理员可以定义元数据驱动的安全策略以进行有效的管理。Ranger是Atlas通知的元数据更改事件的使用者。
3、Atlas的编译
Atlas这个软件框架在官网http://atlas.apache.org/#/ 上面没有给我们提供线程的二进制安装包,只提供了源码包,所以需要我们自己去对源码包进行编译,编译源码包的过程比较简单,但是由于网络原因等,会造成我们一直编译不通过。所以我们知道如何编译Atlas即可,不用自己动手去编译(一般由于网络原因,也会编译不通过的)
第一步:安装jdk
注意:Atlas1.x及以上的版本的编译,必须使用jdk版本高于jdk-8u151的版本,我们这里选择使用jdk-8u231这个版本即可,只要版本高于8u151的都行。
linux下面安装jdk的步骤省略
第二步:安装maven
maven的版本尽量选择高一点的版本,这里选择使用3.6.x的版本都行,具体我这里使用的是3.6.2的版本来进行编译,没有问题
linux安装maven步骤省略
第三步:下载源码准备编译
我们这里使用1.2.0这个版本来进行编译,下载Atlas的源码,然后解压,进行编译即可
统一linux的软件下载以及软件编译目录
定义软件下载目录mkdir -p /kkb/soft 定义软件安装目录mkdir -p /kkb/ins