介绍
Atlas 是Hadoop的数据治理和元数据框架,是一组可伸缩和可扩展的核心基础治理服务。
Atlas 提供开放的元数据管理和治理功能,以构建数据资产的目录,对这些资产进行分类和治理,并为数据科学家、分析师和数据治理团队提供围绕这些数据资产的协作功能。
特性
- Metadata types & instances 元数据类型和实例 - 预定义各种 Hadoop 元数据和非 Hadoop 的元数据类型,类型可以有各种属性,还能继承其他类型。 - 类型的实例即实体,是具体的元数据对象信息和血缘关系信息等。 
- Classification 分类 - 可以动态的创建分类,也可以有子类 
- Lineage 血缘 - 有直观的用户图形界面来查看数据血缘,但是没有全局的血缘界面。可以用 Reset API来构建,也可以用Kafka 接口来构建 
- Security & Data Masking 安全性和数据屏蔽 - 支持对实体实例的访问控制,以及对分类Classification 的增删改 - 还可以和 Apache Ranger 集成,进行权限控制。 
架构

Core 核心层
- Type System:atlas 中自定义的类型系统,类似面向对象中的 类和对象。可以自定义类型 (类) 和实体 (对象),比如 hive表 default.test_table ,在 atlas 中对应的类型就是 hive_table,其实体就该表的元数据信息。
- Ingest/Export:ingest 组件用来新增元数据,export用来更新元数据。
- Graph Engine:图形引擎,负责 元数据对象之间的血缘关系,基础图形模型等。
Integration 整合层
- API:Atlas 所有功能都可以通过其Rest API 来实现。 
- Messaging:主要是基于kafka的消息接口。此接口与 Atlas 有更好的松散耦合,更好的扩展,更好的可靠性。 -  ATLAS_HOOK:来自 各个组件的Hook 的元数据通知事件通过写入到名为 ATLAS_HOOK 的 Kafka topic 发送到 Atlas -  ATLAS_ENTITIES:从 Atlas 到其他集成组件(如Ranger)的事件写入到名为 ATLAS_ENTITIES 的 Kafka topic 
Metadata sources 元数据来源
- Hive:有两个,一个是全量批量导入的,一个是基于hive hook接口实时更新元数据。包括DDL、DML 
- HBase:有两个,一个是全量批量导入的,一个基于 HBase 协处理器做的实时更新元数据。包括namespace、table、columnFamily等的增删改。 
- Sqoop:没看 
- Kafka:只能批量导入,即读取kafka在Zookeeper上存的相关Topic信息,进行导入。 
- Storm:没看 
- Spark:有一个 spark 的连接器,支持 spark 端的 血缘关系,但是有点复杂。 
- RDBMS:只有 RDBMS 的类型系统,需要自己实现 bridge 进行导入 
Applications atlas应用层
- admin UI:用户界面
- Tag Based Policies:基于标签和Apache Ranger 的权限管理。