1、Atlas是什么?
Atlas是Hadoop的数据治理和元数据框架。Atlas是一组可扩展和可扩展的核心基础治理服务,使企业能够有效,高效地满足Hadoop中的合规性要求,并允许与整个企业数据生态系统集成。Apache Atlas为组织提供了开放的元数据管理和治理功能,以建立其数据资产的目录,对这些资产进行分类和治理,并为数据科学家,分析师和数据治理团队提供围绕这些数据资产的协作功能。
2、主要特性
支持各种Hadoop和非Hadoop元数据管理
数据分类
数据血缘
可以支持字段级别的血缘关系
元数据搜索
可以通过web页面进行搜索查看元数据(库、表、字段)和血缘关系(表和字段级别)
安全和生命周期管理
通过Apache Ranger 实现
3、架构
主要组件:
- Core:Type System、Ingest / Export、Graph Engine、Titan
Type System:定义想要管理的元数据模型。
Ingest / Export:导入和更改元数据
Graph Engine:通过使用图形模型管理元数据对象。
JanusGraph :Atlas使用Titan图数据库来存储元数据对象。Titan使用两个存储:默认情况下元数据存储配置为HBase,索引存储配置为Solr。
- Integration:使用两种方法管理 Atlas 中的元数据
API:Atlas的所有功能通过REST API提供给最终用户,允许创建,更新和删除类型和体。它也是查询和发现通过Atlas管理的类型和实体的主要方法。
Messaging:除了API之外,用户还可以选择使用基于 Kafka 的消息接口与Atlas集成。
- Metadata Sources:目前只支持Hive、Sqoop、Storm、Kafka、Hbase、Falcon
- Applications:Atlas Admin UI 和 Tag Based Policies(Apache Ranger)
Atlas Admin UI:基于Web的应用程序,允许数据管理员和科学家发现和注释元数据。最重要的是搜索界面和SQL样的查询语言。
Apache Ranger:是针对 Hadoop 生态系统的高级安全管理解决方案。
4、hooks
元数据处理的整体流程入下图所示:
1、hive hook
Atlas Hive hook 通过kafka监听hive中的create/update/delete操作,从而更新元数据。
目前支持捕获的hive操作:
create database
create table/view, create table as select
load, import, export
DMLs (insert)
alter database
alter table (skewed table information, stored as, protection is not supported)
alter view
2、Column Level Lineage
血缘捕获方式:simple、expression、script
Example:
create table t2 as select id, name from T1;
注:hive hook只能监听hive的命令,通过分析hql语句得到血缘关系。