Atlas 架构与组件介绍


1. Atlas 概述

Apache Atlas 是Hadoop社区为解决Hadoop生态系统的元数据治理问题而产生的开源项目,它为Hadoop集群提供了包括数据分类、集中策略引擎、数据血缘、安全和生命周期管理在内的元数据治理核心能力。用以构建其数据资源目录,对这些资产进行分类和管理,并为数据分析师和数据治理团队提供围绕这些数据资产的协作的功能。

Atlas 是一个可伸缩和可扩展的核心基础治理服务集合 ,使企业能够有效地和高效地满足 Hadoop 中的合规性要求,并允许与整个企业数据生态系统的集成。

Atlas支持各种Hadoop和非Hadoop元数据类型,并提供了丰富的REST API进行集成,对数据血缘的追溯达到了字段级别。

2. Atlas 架构原理

Atlas 架构图

2.1 Metatada Sources

Atlas支持与许多元数据源的集成,将来还会添加更多集成。目前,Atlas 支持从以下数据源获取和管理元数据:

Hive 通过hive bridge,atlas可以接入Hive的元数据,包括hive_db/hive_table/hive_column/hive_process
Sqoop 通过sqoop bridge,atlas可以接入关系型数据库的元数据,包括sqoop_operation_type/ sqoop_dbstore_usage/sqoop_process/sqoop_dbdatastore
Falcon 通过falcon bridge,atlas可以接入Falcon的元数据,包括falcon_cluster/falcon_feed/falcon_feed_creation/falcon_feed_replication/ falcon_process
Storm 通过storm bridge,atlas可以接入流式处理的元数据,包括storm_topology/storm_spout/storm_bolt

Atlas集成大数据组件的元数据源需要实现以下两点:

  1. 需要基于atlas的类型系统定义能够表达大数据组件元数据对象的元数据模型(例如Hive的元数据模型实现在org.apache.atlas.hive.model.HiveDataModelGenerator)
  2. 需要提供hook组件去从大数据组件的元数据源中提取元数据对象,实时侦听元数据的变更并反馈给atlas;

2.2 Apps

2.2.1 Ranger Tag Based Policies

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

2.2.2 Admin UI

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

2.2.3 Business Taxonomy

从元数据源获取到 Atlas 的元数据对象主要是一种技术形式的元数据。为了增强可发现性和治理能力,Atlas 提供了一个业务分类界面,允许用户首先定义一组代表其业务域的业务术语,并将其与 Atlas 管理的元数据实体相关联。业务分类法是一种 Web 应用程序,目前是 Atlas Admin UI 的一部分,并且使用 REST API 与 Atlas 集成。
在HDP2.5中,Business Taxonomy是提供了Technical Preview版本,需要在Atlas > Configs > Advanced > Custom application-properties中添加atlas.feature.taxonomy.enable=true并重启atlas服务来开启

2.3 Intergration

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

2.3.1 Messaging

除了API之外,用户还可以选择使用基于Kafka的消息接口与Atlas集成。这对于将元数据对象传输到 Atlas 以及从 Atlas 使用可以构建应用程序的元数据更改事件都非常有用。如果希望使用与Atlas更松散耦合的集成,这可以允许更好的可扩展性、可靠性等,消息传递接口是特别有用的。Atlas 使用 Apache Kafka 作为通知服务器用于钩子和元数据通知事件的下游消费者之间的通信。事件由钩子(hook)和 Atlas 写到不同的 Kafka 主题。

ATLAS_HOOK: 来自各个组件的Hook的元数据通知事件通过写入到名为 ATLAS_HOOK的Kafka topic 发送到 Atlas.
ATLAS_ENTITIES:从Atlas到其他集成组件(如Ranger)的事件写入到名为ATLAS_ENTITIES的 Kafka topic

2.3.2 API

Atlas的所有功能都可以通过REST API提供给最终用户,允许创建、更新和删除类型和实体。它也是查询和发现通过 Atlas 管理的类型和实体的主要方法。

2.4 Core

2.4.1 Ingest/Export

Ingest 组件允许将元数据添加到Atlas。类似地,Export 组件暴露由 Atlas 检测到的元数据更改,以作为事件引发,消费者可以使用这些更改事件来实时响应元数据更改。

2.4.2 Type System

Atlas 允许用户为他们想要管理的元数据对象定义一个模型。该模型由称为“类型” 的定义组成。“类型” (类)的实例被称为 “实体” 表示被管理的实际元数据对象。类型系统是一个组件,允许用户定义和管理类型和实体。由Atlas管理的所有元数据对象(例如Hive表)都使用类型进行建模,并表示为实体(类对象,一条数据)。

2.4.3 Graph Engine

在内部,Atlas 通过使用图形模型管理元数据对象。以实现元数据对象之间的巨大灵活性和丰富的关系。图形引擎是负责在类型系统的类型和实体之间进行转换的组件,以及基础图形模型。除了管理图形对象之外,图形引擎还为元数据对象创建适当的索引,以便有效地搜索它们。

2.4.4 JanusGraph

图数据库,持久化的数据会保存在JanusGraph中。

2.5 Medatada Store

采用HBASE存储元数据。

2.6 Index Store

使用Solr 来创建索引。

3. 核心特性

Apache Atlas为Hadoop的元数据治理提供了以下特性:

3.1 数据分类

为元数据导入或定义业务导向的分类注释
定义,注释,以及自动捕获数据集和底层元素之间的关系
导出元数据到第三方系统

3.2 集中审计

捕获与所有应用,过程以及与数据交互的安全访问信息
捕获执行,步骤,活动等操作的信息

3.3 搜索与血缘

预定义的导航路径用来探索数据分类以及审计信息
基于文本的搜索特性来快速和准确的定位相关联的数据和审计事件
对数据集血缘关系的可视化浏览使用户可以下钻到操作,安全以及数据起源相关的信息

3.4 安全与策略引擎

基于数据分类模式,属性以及角色的运行时合理合规策略
基于分类-预测的高级策略定义以防止数据推导
基于cell的属性和值的行/列级别的masking


文章作者: hnbian
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hnbian !
评论
 上一篇
Atlas web UI 使用介绍 Atlas web UI 使用介绍
1. 导入hive元数据[root@hnode3 hook-bin]# pwd /usr/hdp/current/atlas-server/hook-bin [root@hnode3 hook-bin]# ll 总用量 16 -rwxr-x
2021-10-25
下一篇 
Ambari 添加 Atlas 组件 Ambari 添加 Atlas 组件
本文章中部署Atlas 是在 Ambari 中部署的, 如果没有 Ambari 环境, 并且想部署 Ambari 可以查看Amabari 环境部署 1. 准备工作安装 Atlas 之前需要安装好 Solr. 2. 添加 Atlas 服务
2021-10-19
  目录