Atlas架构与原理

作者:楼高

一、总体架构

Atlas 是一个可伸缩且功能丰富的数据管理系统,深度集成了 Hadoop 大数据组件。简单理解就是一个 跟 Hadoop 关系紧密的,可以用来做元数据管理的一个系统,整个结构图如下所示:

Atlas可以分为以下几层:

1、Core:Atlas 功能核心的组件(提供元数据摄取与导出、类型系统、元数据存储索引查 询等核心功能)

2、Integration:Atlas对外集成的模块(外部组件的元数据通过该模块把元数据交给Atlas来管 理),也就是说管理外部元数据的插件都得跟该模块交互。

3、Metadata source:Atlas支持的元数据数据源,以插件形式提供

4、Applications:Atlas的上层应用,可以用来查询由 Atlas 管理的元数据类型和对象

二、组件说明

1. Core核心层

(1)Type System

Atlas 允许用户为他们想要管理的元数据对象定义一个模型。该模型由称为 "types" 的定义组 成。"types" 的 实例被称为 "entities" 表示被管理的实际元数据对象。类型系统是一个组件,允许用户 定义和管理类型(types)和实体(entities)。由 Atlas 管理的所有元数据对象(例如Hive表)都使用 类型进行建模,并表示为实体。 简单理解:元数据在Atlas内部被抽象为:模型=类型-->实体来表示。

(2)Ingest/Export(导入/导出)

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

(3)Graph Engine(图计算引擎)

在内部,Atlas使用图模型来持久化和管理元数据对象。图模型提供了极大的灵活性,并可以有效处理元 数据对象之间的丰富关系。 图引擎组件负责在Atlas类型系统的类型和实体以及基础图持久性模型之间 进行转换。 除了管理图形对象之外,图形引擎还为元数据对象创建适当的索引,以便可以高效地搜索它 们。 Atlas使用JanusGraph存储元数据对象。 简单理解:元数据采用图模型来表示(传统关系模型无法表示),并存储在图存储中 (JanusGraph),Graph Engine(图引擎)是图模型(类/对象)和图存储(数据库)之间的桥梁。

(4)JanusGraph(图存储引擎/图数据库)

在Atlas 1.0之前采用Titan作为图存储引擎,从Atlas 1.0开始采用JanusGraph作为图存储引擎。 JanusGraph底层又分为两块: 1. Metadata Store:采用HBase存储Atlas管理的元数据。 2. Index Store:采用Solr来存储元数据的索引,便于高效搜索。

2. integration层

Integration提供了两种元数据集成方式供外部组件把元数据接入Atlas:

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

(2)Messaging 除了 API 之外,用户还可以选择使用基于 Kafka 的消息接口与 Atlas 集成。

这对于将元数据对象传输到 Atlas 以及从 Atlas获取元数据更改事件都非常有用。如果希望与 Atlas 更松散耦合的集成,且希望有更 好的可扩展性,可靠性等,消息传递接口是特别有用的。 Atlas 使用 Apache Kafka 作为消息队列。事件由钩子(hook)和 Atlas 写到不同的 Kafka 主题:

a. ATLAS_HOOK: 来自各个组件的Hook的元数据通知事件通过写入到名为 ATLAS_HOOK 的 Kafka topic 发送到 Atlas(消息入口:采集外部元数据)

b. ATLAS_ENTITIES:从 Atlas 到其他集成组件(如Ranger)的事件写入到名为 ATLAS_ENTITIES 的 Kafka topic(消息出口:暴露元数据变更事件给外部组件)

3. Metadata source 层

Metadata source是一堆元数据采集的插件的统称,通过他们就可以管理外部的各种元数据了。

Atlas支持与许多现成的元数据源集成,将来还将添加更多集成。 当前Atlas支持从以下来源提取和管理 元数据: HBase Hive Sqoop Storm Kafka。

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

首先,需要基于atlas的类型系统定义能够表达大数据组件元数据对象的元数据模型;

然后,需要提供hook组件去从大数据组件的元数据源中提取元数据对象,实时侦听元数据的变更 并反馈给Atlas(也可能是批处理)。

4. Applications层

Atlas管理的元数据被各种应用程序使用,以满足许多治理场景。Applications就是Atlas提供的各种应 用,当然我们也可以在Atlas提供的REST API上开发自己的应用。Atlas目前提供的APP有:

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

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

Business Taxonomy(业务分类界面) 从元数据源获取到 Atlas 的元数据对象主要是一种技术形式的元数据。为了增强可发现性和治理能力, Atlas 提供了一个业务分类界面,允许用户首先定义一组代表其业务域的业务术语,并将其与 Atlas 管 理的元数据实体相关联。Business Taxonomy是一个 Web 应用程序,目前是 Atlas Admin UI 的一部 分,并且使用 REST API 与 Atlas 集成。

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

相关推荐
智购科技自动贩卖机43 分钟前
自动售货机嵌入式系统Go语言开发实践:从资源受限设备到RTOS协程调度的工程化之路
大数据·linux·数据库·人工智能·yolo·架构·golang
独孤九剑打醒他1 小时前
从“铁块一直在辐射电磁波“到EUV光源:微波等离子体MPP架构全链路推演
前端·架构·硬件工程
XUEYUAN52121 小时前
代理日志分析与监控:代理池健康状态巡检与分级告警体系搭建(运维实战)
运维·网络·网络协议·tcp/ip·算法·架构
肠畔码农1 小时前
深入分布式事务内核:从 2PC/XA 到 Seata AT 模式的架构演进与权衡
分布式·架构
weixin199701080162 小时前
《大促护航:电商API限流与降级,双11峰值500万调用的架构复盘》(附Python源码)
python·架构·wpf
老郑聊AI业财智造2 小时前
给大模型装上“金融之眼”:Kronos-Report的量化预测架构与技术全景剖析
人工智能·python·深度学习·语言模型·金融·架构·软件工程
马可家的菠萝2 小时前
收藏不是终点:一个真正有用的个人知识库,至少要完成“收集 → 理解 → 行动”
前端·后端·架构
小柯博客2 小时前
06 · 统一 libcamerasrc 与架构定型:3A、CPU 归因与一次黑屏回归
c语言·stm32·单片机·嵌入式硬件·架构·嵌入式·视频编解码
醉颜凉2 小时前
Elasticsearch核心架构:集群(Cluster)原理详解与核心作用
elasticsearch·架构·jenkins
RisunJan2 小时前
HarmonyOS 架构精读:从系统分层到应用模型
华为·架构·harmonyos