APACHE-ATLAS-2.1.0简介(一)
APACHE-ATLAS-2.1.0简介(二)
写在前面
ATLAS为组织提供开放式的元数据管理和治理功能,用以构建其数据资产目录,对这些资产进行分类和管理,形成数据字典。
名词解释
元数据:就是用于描述数据的数据,也可以说是识别数据的数据,以HIVE为例,元数据就是库、表和字段等信息。元数据一般大致可为三类:业务元数据、技术元数据和操作元数据。
1. 业务元数据,用于描述数据的业务含义、业务规则等。通过明确业务元数据,让人们更容易理解和使用业务元数据。元数据消除了数据的二义性,让人们对数据有一致的认知,避免“自说自话”,进而为数据分析和应用提供支撑。
2. 技术元数据,用于对数据的结构化进行描述,方便计算机或数据库对数据进行识别、存储、传输和交换。技术元数据可以服务于开发人员,让开发人员更加明确数据的存储、结构,从而为应用开发和系统集成奠定基础。也可以服务于业务人员,通过元数据理清数据关系,让业务人员更快速地找到想要的数据,进而对数据的来源和去向进行分析,支持数据血缘追溯和影响分析。
3. 操作元数据,用于描述数据的操作属性,包括管理部门、管理责任人等。明确管理属性有利于数据管理责任到部门和个人,是数据安全管理的基础。
数据字典:也可以称为数据资产目录,通过数据字典可以查询元数据的相关信息以及元数据之间的血缘关系。
如何修改登录密码?
ATLAS当前默认的用户名密码为:admin/admin
口令信息存储在该文件中:/opt/software/apache-atlas-2.1.0/conf/users-credentials.properties
文件内容如下:
#用户名=组名::采用sha256将密码加密后的暗码
#username=group::sha256-password
admin=ADMIN::a4a88c0872bf652bb9ed803ece5fd6e82354838a9bf59ab4babb1dab322154e1
rangertagsync=RANGER_TAG_SYNC::0afe7a1968b07d4c3ff4ed8c2d809a32ffea706c66cd795ead9048e81cfaf034
如果要添加一个用户为:root/123456,怎么办呢?先采用sha256将密码加密后的暗码:
echo -n "123456"|sha256sum
新增root/123456新用户以后后users-credentials.properties文件内容如下:
#username=group::sha256-password
admin=ADMIN::a4a88c0872bf652bb9ed803ece5fd6e82354838a9bf59ab4babb1dab322154e1
rangertagsync=RANGER_TAG_SYNC::0afe7a1968b07d4c3ff4ed8c2d809a32ffea706c66cd795ead9048e81cfaf034
root=ADMIN::8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
编译时如果HBASE和SOLR的包无法下载怎么办?
(1). 方案一
打开distro/pom.xml,直接修改hbase和solr的下载路径:
<hbase.dir>${project.build.directory}/hbase</hbase.dir>
<hbase.tar>https://archive.apache.org/dist/hbase/${hbase.version}/hbase-${hbase.version}-bin.tar.gz</hbase.tar>
<hbase.folder>hbase-${hbase.version}</hbase.folder>
<solr.dir>${project.build.directory}/solr</solr.dir>
<solr.tar>https://archive.apache.org/dist/lucene/solr/${solr.version}/solr-${solr.version}.tgz</solr.tar>
<solr.folder>solr-${solr.version}</solr.folder>
(2). 方案二
手动下载Hbase和Solr的包,然后分别放到distro/hbase和distro/solr目录下。
原理概述
(1). 系统架构图
(2). 如何导入历史数据?
当用户安装好对应服务的BRIDGE组件后,手动将元数据源中的历史元数据信息一次性导入到ATLAS中,仅导入一次即可,新的或者说实时变化的元数据信息通过HOOK接入到ATLAS中。
(3). 如何增量接收数据?
通过元数据源对应的HOOK组件,来监测元数据源的变化,将变化的数据发送到KAFKA中,系统消费KAFKA中的数据,将元数据源中变化的元数据导入到ATLAS中。
(4). 导入历史数据时会通过KAFAKA吗?
A. 当我们使用Bridge导入历史数据时,使用的是REST接口导入到ATLAS中,不会通过KAFKA;
B. 当我们使用HOOK采集实时变动的元数据时,使用的是KAFKA的发布/订阅的方式将元数据实时的同步到ATLAS中。
(5). ATLAS中内置的TOPIC有哪些?
在ATLAS中用到了2个TOPIC,分别为ATLAS_HOOK和ATLAS_ENTITIES:
A. ATLAS_HOOK(从其他应用的HOOK写消息到KAFKA的TOPIC,HOOK应用-生产者,ATLASE-消费者)
B. ATLAS_ENTITIES(从ATLAS写消息到KAFKA的TOPIC,ATLAS-生产者,关心元数据变化的应用-消费者)两个TOPIC。
A. Notifications from Apache Atlas
ATLAS_ENTITIES:ATLAS将元数据的变化信息发送到该TOPIC, 以便关心该元数据的应用使用.
Apache Atlas sends notifications about metadata changes to Kafka topic named ATLAS_ENTITIES.
Applications interested in metadata changes can monitor for these notifications.
For example, Apache Ranger processes these notifications to authorize data access based on classifications.
B. Notifications to Apache Atlas
ATLAS_HOOK:各个组件将元数据的变化信息发送到该TOPIC, ATLAS消费这些元数据进行管理.
Apache Atlas can be notified of metadata changes and lineage via notifications to Kafka topic named ATLAS_HOOK.
Atlas hooks for Apache Hive/Apache HBase/Apache Storm/Apache Sqoop use this mechanism to notify
Apache Atlas of events of interest
(6). ATLAS中内置的类型有哪些?
Type System
A. Referenceable:这种类型的实体可以使用叫qualifiedName的唯一属性进行搜索。
B. Asset:这种类型扩展了Referenceable类型,添加了名称、描述和所有者等属性。Name是必需的属性(isOptional=false),其他属性是可选的。Referenceable和Asset类型的意义在于,使用户在定义与查询实体时,用于强化实体的一致性。
C. Infrastructure:这种类型扩展了Asset类型,通常可以用作基础设施元数据对象(如集群、主机等)的父类。
D. DataSet:这种类型继承自Referenceable类型。从概念上说它用于表示一个能够存储数据的类型。继承自DataSet类型的实体都有一个Schema,可以参与数据的变换,能够被ATLAS的血缘获取。
E. Process:这种类型继承自Asset类型。从概念上说它用于表示任何一个数据变换操作,也就是说从实体A到实体B的转换过程用Process类型来表示。
核心能力
1. 通用数据接入:ATLAS提供了实时接入增量数据的HOOK的模型和批量导入的历史数据的批处理模型,在需要采集元数据的对应的服务端安装HOOK插件,完成实时采集。
2. 统一数据模型:
ATLAS将要管理的元数据对象定义为一个模型,这个模型由称为 “类型” 的定义组成,被称为 “实体” 的 “类型” 的实例表示被管理的实际元数据对象。由ATLAS管理的所有元数据对象都使用"类型" 进行建模,并表示为实体。最终ATLAS抽象出了Type和Entity两种模型,类型表示了所定义元数据对象的一个或多个属性的集合,将要管理的元数据对象用Type进行抽象定义,这个对象的信息用Entity定义,简单的可以把Type理解为类或关系数据库的表的"表结构(SCHEMA)",把Entity理解为该类的实例或关系数据库的记录。
ATLAS中的类型分为两类:原生类型和结构化类型。
原生类型用来描述基础属性的类型,结构化类型用来构造ATLAS中元数据的复杂模型。
(1) 原生类型包括:boolean, byte, short, int, long, float, double, biginteger, bigdecimal, string;
(2) 结构化类型包括:集合类型(Array,Map)和复合类型(Class,Struct,Trait)。
元数据从功能上分为数据元数据和计算元数据,数据元数据一般继承自DataSet预定义类型,计算元数据类型一般继承自Process元数据类型。ATLAS的血缘关系正是对Process的输入输出链(数据元数据)进行分析的结果,就存储本身而言,数据元数据和计算原数据并无差别。
什么是元数据对象呢?如:一个数据库,一张HBASE的表,一个KAFKA的TOPIC,一个分区或者一个字段等等,都是一个元数据对象,他们都被抽象为TYPE。一个元数据对象就是一个TYPE,一个TYPE的实例就是一个Entity。由ATLAS管理的所有元数据对象,都由Type进行建模,并由实体进行表示。
3. 图引擎存储:基于Gremlin语法、HBASE存储引擎、Solr全文检索引擎完成图数据的存储。