Apache Atals簡(jiǎn)介
元數(shù)據(jù)的管理是一個(gè)受到越來(lái)越多關(guān)注的領(lǐng)域,Apache Atlas是元數(shù)據(jù)領(lǐng)域中最早也是最具名氣的一個(gè)解決方案。最早由Hortonworks的團(tuán)隊(duì)開(kāi)發(fā),并開(kāi)源成為一個(gè)頂級(jí)的項(xiàng)目。
Apache Atlas的整體架構(gòu)如下

可以看到元數(shù)據(jù)管理系統(tǒng),其實(shí)結(jié)構(gòu)較為簡(jiǎn)單,類(lèi)似一個(gè)數(shù)據(jù)字典的管理系統(tǒng)。這其中比較重要的是,怎么定義數(shù)據(jù)結(jié)構(gòu)能夠滿(mǎn)足現(xiàn)在異構(gòu)的數(shù)據(jù)倉(cāng)庫(kù)場(chǎng)景,其次便是現(xiàn)有的系統(tǒng)如何與元數(shù)據(jù)管理系統(tǒng)有比較好的集成。
Atalas 使用Hbase 作為底層存儲(chǔ),JanusGraph作為數(shù)據(jù)血緣的圖存儲(chǔ),同時(shí)使用Solr支持搜索的服務(wù)。通過(guò)與Kafka的對(duì)接實(shí)現(xiàn)推的更新模式。他同時(shí)開(kāi)發(fā)API來(lái)支持主動(dòng)拉取的模式。
如何安裝與使用
我試驗(yàn)過(guò)多種安裝的方式,官方給出的通過(guò)github來(lái)進(jìn)行安裝的會(huì)碰到諸多的問(wèn)題。通過(guò)編譯也需要做一些改變比如
- maven沒(méi)有使用https,因?yàn)?020年一月份之后maven centrel強(qiáng)制https的訪問(wèn),因此必須要改用Https才可以執(zhí)行。
- 使用了javax.annotation, java 9+之后由于修改了javax的定義,因此需要將JAVA_HOME設(shè)定到1.8的版本,maven才能夠正常的編譯。
經(jīng)過(guò)一陣掙扎,還是選擇使用了Dockerhub上的項(xiàng)目https://github.com/sburn/docker-apache-atlas。
結(jié)論
優(yōu)點(diǎn)
- Hadoop生態(tài)中的元數(shù)據(jù)管理的最完整解決方案,并且CDH可以提供官方的支持。系統(tǒng)設(shè)計(jì)的沒(méi)有侵入性,如果自己的數(shù)據(jù)存儲(chǔ)與Atalas支持的非常匹配的話,使用起來(lái)比較快速。
- 因?yàn)槭亲钤绯鰜?lái)的解決方案,所以相關(guān)的數(shù)據(jù)血緣的支持會(huì)更加豐富,比如還會(huì)有其他的開(kāi)源項(xiàng)目支持Atlas給出的元數(shù)據(jù)存儲(chǔ)。例如Amundsen,Spark的血緣項(xiàng)目也已Atlas為最終寫(xiě)入對(duì)象。
缺點(diǎn)
- 對(duì)于不同的存儲(chǔ)的支持比較有限,RDBMS都需要自主開(kāi)發(fā)才能進(jìn)行很好的結(jié)合。而且開(kāi)發(fā)的文檔維護(hù)的也不是很好,基本需要直接看代碼來(lái)完成開(kāi)發(fā)。
- Classification 以及 Glossary的區(qū)分沒(méi)有很明確,用的時(shí)候沒(méi)有非常清楚在實(shí)踐中什么應(yīng)當(dāng)作為classification什么應(yīng)當(dāng)作為Glossary。
- 社區(qū)活躍度并不高,導(dǎo)致項(xiàng)目本身具備一定的不確定性。在測(cè)試使用的過(guò)程中系統(tǒng)速度并沒(méi)有很快速。