atlas架构及原理

介绍

Atlas 是Hadoop的数据治理和元数据框架,是一组可伸缩和可扩展的核心基础治理服务。

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

特性

  • Metadata types & instances 元数据类型和实例

    预定义各种 Hadoop 元数据和非 Hadoop 的元数据类型,类型可以有各种属性,还能继承其他类型。

    类型的实例即实体,是具体的元数据对象信息和血缘关系信息等。

  • Classification 分类

    可以动态的创建分类,也可以有子类

  • Lineage 血缘

    有直观的用户图形界面来查看数据血缘,但是没有全局的血缘界面。可以用 Reset API来构建,也可以用Kafka 接口来构建

  • Security & Data Masking 安全性和数据屏蔽

    支持对实体实例的访问控制,以及对分类Classification 的增删改

    还可以和 Apache Ranger 集成,进行权限控制。

架构

img

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 的权限管理。

使用