大數據元數據和數據管理框架 Apache Atlas實踐

原文地址 https://blog.csdn.net/oDaiLiDong/article/details/78052017
今天技術小夥伴佔衛同學分享了Apache Atlas元數據管理實踐,被atlas的強大的血緣關係管理能力震撼,以下爲本次分享內容:
•Apache Atlas簡介
•Apache Atlas架構
•Titan圖數據庫介紹
•ApachAtlas配置
•Apache Atlas案例
•總結

Apache Atlas簡介
•面對海量且持續增加的各式各樣的數據對象,你是否有信心知道哪些數據從哪裏來以及它如何隨時間而變化?採用Hadoop必須考慮數據管理的實際情況,元數據與數據治理成爲企業級數據湖的重要部分
•爲尋求數據治理的開源解決方案,Hortonworks公司聯合其他廠商與用戶於2015年發起數據治理倡議,包括數據分類、集中策略引擎、數據血緣、安全和生命週期管理等方面。Apache Atlas 項目就是這個倡議的結果,社區夥伴持續的爲該項目提供新的功能和特性。該項目用於管理共享元數據、數據分級、審計、安全性以及數據保護等方面,努力與Apache Ranger整合,用於數據權限控制策略。

Atlas主要功能
•數據分類
        定義、註釋和自動捕獲數據集和底層之間的關係元素包括源、目標和派生過程

•安全審計
        數據訪問的日誌審計

•搜索和血緣關係
       元數據信息及數據之間的血緣

•安全與策略引擎
       結合ApacheRanger來設置數據的訪問權限

Atlas架構

Atlas Core
•Type System:Atlas 允許用戶爲他們想要管理的元數據對象定義一個模型。該模型由稱爲“類型” 的定義組成。“類型” (類)的 實例被稱爲 “實體” 表示被管理的實際元數據對象。類型系統是一個組件,允許用戶定義和管理類型和實體。由 Atlas 管理的所有元數據對象(例如Hive表)都使用類型進行建模,並表示爲實體(類對象,一條數據)。
•Ingest / Export:Ingest 組件允許將元數據添加到 Atlas。類似地,Export 組件暴露由 Atlas 檢測到的元數據更改,以作爲事件引發,消費者可以使用這些更改事件來實時響應元數據更改。
•Graph Engine :在內部,Atlas 通過使用圖形模型管理元數據對象。以實現元數據對象之間的巨大靈活性和豐富的關係。圖形引擎是負責在類型系統的類型和實體之間進行轉換的組件,以及基礎圖形模型。除了管理圖形對象之外,圖形引擎還爲元數據對象創建適當的索引,以便有效地搜索它們

如何使用Atlas管理
   用戶可以使用兩種方法管理 Atlas中的元數據

•API:Atlas 的所有功能通過REST API 提供給最終用戶,允許創建,更新和刪除類型和實體。它也是查詢和發現通過Atlas 管理的類型和實體的主要方法。
    https://cwiki.apache.org/confluence/display/ATLAS/Atlas+REST+API

•Messaging:除了 API 之外,用戶還可以選擇使用基於 Kafka 的消息接口與 Atlas 集成。這對於將元數據對象傳輸到 Atlas 以及從 Atlas 使用可以構建應用程序的元數據更改事件都非常有用。如果希望使用與 Atlas 更鬆散耦合的集成,這可以允許更好的可擴展性,可靠性等,消息傳遞接口是特別有用的。Atlas 使用 Apache Kafka 作爲通知服務器用於鉤子和元數據通知事件的下游消費者之間的通信。事件由鉤子和 Atlas 寫到不同的 Kafka 主題。

Titan介紹

•Titan:目前,Atlas 使用 Titan 圖數據庫來存儲元數據對象。 Titan 使用兩個存儲:默認情況下元數據存儲配置爲 HBase,索引存儲配置爲 Solr。也可以通過構建相應的配置文件將元數據存儲作爲 BerkeleyDB和 Index 存儲使用爲 ElasticSearch。元數據存儲用於存儲元數據對象本身,並且索引存儲用於存儲元數據屬性的索引,其允許高效搜索。
•目前基於Java使用最廣泛的有兩個開源框架
  (1) neo4j

社區版 免費

企業版 收費

(2) Titan

全開源

Titan是一個分佈式的圖數據庫,支持橫向擴展,可容納數千億個頂點和邊。 Titan支持事務,並且可以支撐上千併發用戶和 計算複雜圖形遍歷。

安裝

在安裝前需要確定,你運行titan的Java環境爲1.8+ *

  1. 將安裝包拷貝到安裝位置後解壓縮:

unzip titan-1.0.0-hadoop2.zip

  1. 刪除並添加相關jar包

官方提供的hadoop2的安裝包有一些問題,如果想要順利的使用titan,必須刪除相關的jar包,並添加一些缺失的jar包:

a. 刪除異常jar包

hadoop-core-1.2.1.jar

b. 添加所需要的jar包,這些jar包可以通過maven進行下載

titan-hadoop-1.0.0.jar

titan-hadoop-core-1.0.0.jar

啓動

•titan安裝後,使用默認配置啓動titan服務。
•默認情況下,titan會啓動三個服務:

•Cassandra 作爲後端數據庫存儲圖數據
•Elasticsearch作爲索引,提高圖的檢索效率
•Gremlin-Server 圖數據庫引擎,支持gremlin數據查詢語法

測試

./bin/gremlin.sh

:remote connect tinkerpop.serverconf/remote.yaml

//初始化

graph=TitanFactory.open(‘conf/titan-cassandra-es.properties’)

GraphOfTheGodsFactory.load(graph)

g=graph.traversal()

//獲取saturn點

saturn=g.V().has(‘name’, ‘saturn’).next()

g.V(saturn).valueMap()

//查看saturn孫子

g.V(saturn).in(‘father’).in(‘father’).values(‘name’)

//查看hercules父母

hercules = g.V().has(‘name’, ‘hercules’).next()

g.V(hercules).out(‘father’, ‘mother’).values(‘name’)

Atlas配置
1,Atlas安裝後默認hbase和solr存儲,如果想修改存儲介質,需要修改

/usr/hdp/2.6.0.3-8/atlas/conf/atlas-application.properties

2,Atlas安裝完之後會在hive-site.xml文件中插入,是一個鉤子函數

Hive 在使用 hive hook 的hive 命令執行上支持偵聽器。 這用於在 Atlas 中使用org.apache.atlas.hive.model.HiveDataModelGenerator 中定義的模型添加/更新/刪除實體。 hive hook將請求提交給線程池執行器,以避免阻塞命令執行。 線程將實體作爲消息提交給通知服務器,並且服務器讀取這些消息並註冊實體。

3,如果Atlas中沒有元數據,需要手動執行

/usr/hdp/2.6.0.3-8/atlas/hook-bin/import-hive.sh

4,Atlas高可用

要在 Atlas 中設置高可用性,必須在 atlas-application.properties文件中定義一些配置選項。

•高可用性是Atlas 的可選功能。因此,必須通過將配置選項atlas.server.ha.enabled設置爲true 來啓用。
•接下來,定義標識符列表,爲您爲 Atlas Web Service 實例選擇的每個物理機器分配一個標識符。這些標識符可以是簡單的字符串,如id1,id2等。它們應該是唯一的,不應包含逗號。
•將這些標識符的逗號分隔列表定義爲選項 atlas.server.ids的值。
•對於每個物理機,請列出IP地址/主機名和端口作爲配置 atlas.server.address.id的值,其中 id指的是此物理機的標識符字符串。

•例如,如果您選擇了 2臺主機名爲 http://host1.company.com和 http://host2.company.com的計算機,則可以如下定義配置選項:
•  atlas.server.ids=id1,id2
• atlas.server.address.id1:21000=host1.company.com
• atlas.server.address.id2:21000=host2.company.com
•定義使用的 Zookeeper爲 Atlas提供高可用性功能
atlas.server.ha.zookeeper.connect:2181=zk1.company.com,zk2.company.com:2181,zk3.comp

•要驗證高可用性是否正常工作,請在安裝了 Atlas Web Service 的每個實例上運行以下腳本。
   $ATLAS_HOME/bin/atlas_admin.py -status

以下hive 操作由 hive hook 當前捕獲

create database

create table/view, create table as select

load, import, export

DMLs (insert)

alter database

alter table (skewed table information, stored as, protection is notsupported)

alter view

案例

REST API
http://192.168.200.13:21000/api/atlas/lineage/hive/table/stg.stg_device_info_d@test/inputs/graph

http://192.168.200.13:21000/api/atlas/lineage/hive/table/stg.stg_device_info_d@test/outputs/graph

注意:已經刪除的表,RESTAPI不能查詢,但是圖形化工具可以查詢

總結
ApacheAtlas可監控數據的流向

ApacheRanger統一授權管理


作者:代立冬
來源:CSDN
原文:https://blog.csdn.net/oDaiLiDong/article/details/78052017
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章