天天看點

Apache Atlas2.0 第二節 架構了解

       Atlas 是一個可伸縮且功能豐富的資料管理系統,深度內建了 Hadoop 大資料元件。簡單了解就是一個跟 Hadoop 關系緊密的,可以用來做中繼資料管理的一個系統,整個結構  圖如下所示:

Apache Atlas2.0 第二節 架構了解

核心元件

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 Atlas為Hadoop的中繼資料治理提供了以下特性:

資料分類

  1. 為中繼資料導入或定義業務導向的分類注釋
  2. 定義,注釋,以及自動捕獲資料集和底層元素之間的關系
  3. 導出中繼資料到第三方系統

集中審計

  1. 捕獲與所有應用,過程以及與資料互動的安全通路資訊
  2. 捕獲執行,步驟,活動等操作的資訊

搜尋與血緣

  1. 預定義的導航路徑用來探索資料分類以及審計資訊
  2. 基于文本的搜尋特性來快速和準确的定位相關聯的資料和審計事件
  3. 對資料集血緣關系的可視化浏覽使使用者可以下鑽到操作,安全以及資料起源相關的資訊

安全與政策引擎

  1. 基于資料分類模式,屬性以及角色的運作時合理合規政策
  2. 基于分類-預測的進階政策定義以防止資料推導
  3. 基于cell的屬性和值的行/列級别的masking