Apache Atlas2.0 第二節 架構理解

       Atlas 是一個可伸縮且功能豐富的數據管理系統,深度集成了 Hadoop 大數據組件。簡單理解就是一個跟 Hadoop 關係緊密的,可以用來做元數據管理的一個系統,整個結構  圖如下所示:

 

核心組件

Core

Type System: Atlas 允許用戶爲他們想要管理的元數據對象定義一個模型。該模型由稱爲 "類型" 的定義組成。"類型" 的 實例被稱爲 "實體" 表示被管理的實際元數據對象。類型系統是一個組件,允許用戶定義和管理類型和實體。由 Atlas 管理的所有元數據對象(例如Hive表)都使用類型進行建模,並表示爲實體。要在 Atlas 中存儲新類型的元數據,需要了解類型系統組件的概念。

 Ingest/Export:Ingest 組件允許將元數據添加到 Atlas。類似地,Export 組件暴露由 Atlas 檢測到的元數據更改,以作爲事件引發,消費者可以使用這些更改事件來實時響應元數據更改。

 Graph Engine:在內部,Atlas 通過使用圖形模型管理元數據對象。以實現元數據對象之間的巨大靈活性和豐富的關係。圖形引擎是負責在類型系統的類型和實體之間進行轉換的組件,以及基礎圖形模型。除了管理圖形對象之外,圖形引擎還爲元數據對象創建適當的索引,以便有效地搜索它們。

 Titan:目前,Atlas 使用 Titan 圖數據庫來存儲元數據對象。 Titan 使用兩個存儲:默認情況下元數據存儲配置爲 HBase ,索引存儲配置爲 Solr。也可以通過構建相應的配置文件使用BerkeleyDB存儲元數據存儲 和使用ElasticSearch存儲 Index。元數據存儲用於存儲元數據對象本身,索引存儲用於存儲元數據屬性的索引,其允許高效搜索。

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, 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集成大數據組件的元數據源需要實現以下兩點:

首先,需要基於atlas的類型系統定義能夠表達大數據組件元數據對象的元數據模型(例如Hive的元數據模型實現在org.apache.atlas.hive.model.HiveDataModelGenerator);

然後,需要提供hook組件去從大數據組件的元數據源中提取元數據對象,實時偵聽元數據的變更並反饋給atlas;

Applications

Atlas Admin UI: 該組件是一個基於 Web 的應用程序,允許數據管理員和科學家發現和註釋元數據。Admin UI提供了搜索界面和 類SQL的查詢語言,可以用來查詢由 Atlas 管理的元數據類型和對象。Admin UI 使用 Atlas 的 REST API 來構建其功能。

Tag Based Policies: Apache Ranger 是針對 Hadoop 生態系統的高級安全管理解決方案,與各種 Hadoop 組件具有廣泛的集成。通過與 Atlas 集成,Ranger 允許安全管理員定義元數據驅動的安全策略,以實現有效的治理。 Ranger 是由 Atlas 通知的元數據更改事件的消費者。

 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服務來開啓

 

核心特性

Apache AtlasHadoop的元數據治理提供了以下特性:

數據分類

  1. 爲元數據導入或定義業務導向的分類註釋
  2. 定義,註釋,以及自動捕獲數據集和底層元素之間的關係
  3. 導出元數據到第三方系統

 

集中審計

  1. 捕獲與所有應用,過程以及與數據交互的安全訪問信息
  2. 捕獲執行,步驟,活動等操作的信息

 

搜索與血緣

  1. 預定義的導航路徑用來探索數據分類以及審計信息
  2. 基於文本的搜索特性來快速和準確的定位相關聯的數據和審計事件
  3. 對數據集血緣關係的可視化瀏覽使用戶可以下鑽到操作,安全以及數據起源相關的信息

安全與策略引擎

  1. 基於數據分類模式,屬性以及角色的運行時合理合規策略
  2. 基於分類-預測的高級策略定義以防止數據推導
  3. 基於cell的屬性和值的行/列級別的masking
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章