Atlas 2.0.0编译与CDH6.2.1集成
Atlas能够提供开放式的元数据管理和治理功能。能够构建表与表之间的血缘关系,并且支持对表和构建表的过程进行分类管理。对于平台数据量越来越大,元数据管理显得至关重要,元数据有效的表达了数据的来源和流向以及依赖,Atlas的出现,有效的解决了元数据的管理问题。
Atlas架构原理
核心组件
核心层Core
类型系统Type System: Atlas 允许用户为他们想要管理的元数据对象定义一个模型。该模型由称为 "Type" 的定义组成。"类型" 的 实例被称为 "实体" 表示被管理的实际元数据对象。类型系统是一个组件,允许用户定义和管理类型和实体。由 Atlas 管理的所有元数据对象(例如Hive表)都使用类型进行建模,并表示为实体。要在 Atlas 中存储新类型的元数据,需要了解类型系统组件的概念。
采集导出Ingest/Export:Ingest 组件允许将元数据添加到 Atlas。类似地,Export 组件暴露由Atlas检测到的元数据更改,以作为事件引发,消费者可以使用这些更改事件来实时响应元数据更改。
图形引擎Graph Engine:在内部,Atlas通过使用图模型管理元数据对象。以实现元数据对象之间的巨大灵活性和丰富的关系。图引擎是负责在类型系统的类型和实体之间进行转换的组件,以及基础图形模型。除了管理图对象之外,图引擎还为元数据对象创建适当的索引,以便有效地搜索它们。
Titan:目前,Atlas 使用 JanusGraph图数据库来存储元数据对象。 JanusGraph使用两个存储:默认情况下元数据存储配置为 HBase ,索引存储配置为 Solr。
继承层Integration
用户可以使用两种方法管理 Atlas 中的元数据:
API:Atlas 的所有功能都可以通过 REST API 提供给最终用户,允许创建,更新和删除类型和实体。它也是查询和发现通过 Atlas 管理的类型和实体的主要方法。
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;
元数据源层Metadata source
Atlas支持与许多元数据源的集成,将来还会添加更多集成。目前,Atlas 支持从以下数据源获取和管理元数据:
Hive:通过hive bridge,可以接入Hive的元数据,包括hive_db/hive_table/hive_column/hive_process
Sqoop:通过sqoop bridge,可以接入关系型数据库的元数据,包括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集成大数据组件的元数据源需要实现以下两点: