介绍

Atlas 高级架构 - 概述

atlas架构图

Atlas 的组件可以分为以下几个主要类别:

Core

Atlas 核心包括以下组件:

Type System:Atlas 允许用户为他们想要管理的元数据对象定义模型。该模型由称为“类型”的定义组成。称为“实体”的“类型”实例表示管理的实际元数据对象。类型系统是一个允许用户定义和管理类型和实体的组件。Atlas 管理的所有元数据对象开箱即用(like Hive tables, for e.g.)使用类型建模并表示为实体。要在 Atlas 中存储新类型的元数据,需要了解类型系统组件的概念。

需要注意的一个关键点是,Atlas 中建模的通用性质允许数据管理员和集成商定义技术元数据和业务元数据。还可以使用 Atlas 的功能定义两者之间的丰富关系。

Graph Engine: 在内部,Atlas 使用 Graph 模型持久化它管理的元数据对象。这种方法提供了极大的灵活性,并能够有效处理元数据对象之间的丰富关系。图引擎组件负责Atlas类型系统的类型和实体之间的转换,以及底层的图持久化模型。除了管理图形对象之外,图形引擎还为元数据对象创建适当的索引,以便可以有效地搜索它们。Atlas 使用 JanusGraph 来存储元数据对象。

Ingest / Export: Ingest 组件允许将元数据添加到 Atlas。类似地,Export 组件将 Atlas 检测到的元数据更改公开为事件event。消费者可以使用这些更改事件event来实时响应元数据更改。

Integration

用户可以使用两种方法管理 Atlas 中的元数据:

API: Atlas 的所有功能都通过 REST API 向最终用户公开,该 API 允许创建、更新和删除类型和实体。它也是查询和发现 Atlas 管理的类型和实体的主要机制。

Messaging: 除了 API 之外,用户还可以选择使用基于 Kafka 的消息传递接口与 Atlas 集成。这对于将元数据对象传达给 Atlas 以及使用可以构建应用程序的来自 Atlas 的元数据更改事件都很有用。Atlas 使用 Apache Kafka 作为通知服务器,用于钩子和元数据通知事件的下游消费者之间的通信。事件由钩子和 Atlas 写入不同的 Kafka 主题。

Metadata sources

Atlas 支持与许多开箱即用的元数据源集成。未来还将添加更多集成。目前,Atlas 支持从以下来源摄取和管理元数据:

  • HBase
  • Hive
  • Sqoop
  • Storm
  • Kafka

整合意味着两件事:Atlas 内置定义了元数据模型来原生表示这些组件的对象。Atlas 提供了一些组件来从这些组件中摄取元数据对象(在某些情况下是实时或批处理模式)。

Applications

Atlas 管理的元数据被各种应用程序消费,以满足许多治理用例

Atlas Admin UI: 该组件是一个基于 Web 的应用程序,允许数据管理员和科学家发现和注释元数据。这里最重要的是一个搜索界面和类似 SQL 的查询语言,可用于查询由 Atlas 管理的元数据类型和对象。Admin UI 使用 Atlas 的 REST API 来构建其功能。

Tag Based Policies: Apache Ranger 是 Hadoop 生态系统的高级安全管理解决方案,与各种 Hadoop 组件广泛集成。通过与 Atlas 集成,Ranger 允许安全管理员定义元数据驱动的安全策略以进行有效的治理。Ranger 是 Atlas 通知的元数据更改事件的消费者。

参考资料:

  1. http://atlas.apache.org/#/Architecture