Apache Atlas入门

Apache Atlas介绍

Apache Atlas是托管于Apache旗下的一款元数据管理和治理的产品,Apache Atlas提供api和一系列插件可以方便将数据库元数据信息导入到atlas中进行分析,atlas也提供web界面对元数据进行管理,通过atlas,企业可以对数据库元数据建立资产目录,并对这些资产进行分类和治理,为数据分析,数据治理提供高质量的元数据信息。

什么是元数据

企业内部可能运行多种类型数据库,从大类上可以分,大数据平台,sql数据库,nosql数据库,图数据库等,从具体的数据库类型可能是mysql,oracle,mongodb等,不管是什么类型的数据库,终归都是一个目的,存储数据,对怎么管理数据每个数据库有每个数据库的方式,以oracle为例

  • schema是一组数据库对象的集合
  • table是存储数据的实体
  • column列表示数据库的每个属性
  • view视图表示虚拟表,表示一组查询的逻辑集合
  • materialview物化视图则是对视图的实体化
  • 同义词表示数据库对象的别名
  • …等等

那么schema,table,column这些描述数据的信息就是元数据,元数据库管理有什么用,我们平时做开发可能很少会去考虑这个问题,元数据管理对保证数据库质量是非常重要的,通过元数据管理

  • 分析表,视图等数据库对象间的依赖关系
  • 分析字段间的传递关系,在元数据库管理中,我们称之为数据血缘关系
  • 分析是否存在重复字段,矛盾字段等
  • 为企业提供数据地图

每个业务系统可能会自己定义表,视图,这些数据从哪来又流往哪去,数据之间是否存在关联,和其他系统的数据是否存在重复字段和矛盾字段,这些就是元数据管理要解决的问题。

apache atlas安装

Atlas目前只能自行编译源码进行安装,Atlas使用java开发,但是是以python方式启动,所以安装之前,环境必须满足以下需求

  • jdk 1.8+
  • maven3.x
  • python2.7+

你可以从这里下载最新版本的Atlas代码,以2.1.0版本为例

$ tar -xvf apache-atlas-2.1.0-sources.tar.gz
$ cd apache-atlas-sources-2.1.0
$ mvn clean install
$ mvn clean -DskipTests package -Pdist,embedded-hbase-solr

安装相关依赖的过程可能会很长,有多长呢,大概一天左右吧,有时候还要科学上下网才能下载下来,所以这东西不适合急性子的人把玩

如果你看到了以下输出,恭喜你安装成功

INFO] Reactor Summary:
[INFO] 
[INFO] Apache Atlas Server Build Tools 1.0 ................ SUCCESS [  0.904 s]
[INFO] apache-atlas 2.1.0 ................................. SUCCESS [  7.481 s]
[INFO] Apache Atlas Test Utility Tools 2.1.0 .............. SUCCESS [  6.085 s]
[INFO] Apache Atlas Integration 2.1.0 ..................... SUCCESS [  7.561 s]
[INFO] Apache Atlas Common 2.1.0 .......................... SUCCESS [  3.016 s]
[INFO] Apache Atlas Client 2.1.0 .......................... SUCCESS [  0.334 s]
[INFO] atlas-client-common 2.1.0 .......................... SUCCESS [  1.254 s]
[INFO] atlas-client-v1 2.1.0 .............................. SUCCESS [  1.706 s]
[INFO] Apache Atlas Server API 2.1.0 ...................... SUCCESS [  2.309 s]
[INFO] Apache Atlas Notification 2.1.0 .................... SUCCESS [  4.108 s]
[INFO] atlas-client-v2 2.1.0 .............................. SUCCESS [  1.118 s]
[INFO] Apache Atlas Graph Database Projects 2.1.0 ......... SUCCESS [  0.202 s]
[INFO] Apache Atlas Graph Database API 2.1.0 .............. SUCCESS [  1.349 s]
[INFO] Graph Database Common Code 2.1.0 ................... SUCCESS [  1.351 s]
[INFO] Apache Atlas JanusGraph-HBase2 Module 2.1.0 ........ SUCCESS [  1.747 s]
[INFO] Apache Atlas JanusGraph DB Impl 2.1.0 .............. SUCCESS [  6.776 s]
[INFO] Apache Atlas Graph DB Dependencies 2.1.0 ........... SUCCESS [  1.730 s]
[INFO] Apache Atlas Authorization 2.1.0 ................... SUCCESS [  1.990 s]
[INFO] Apache Atlas Repository 2.1.0 ...................... SUCCESS [ 13.068 s]
[INFO] Apache Atlas UI 2.1.0 .............................. SUCCESS [ 44.313 s]
[INFO] Apache Atlas New UI 2.1.0 .......................... SUCCESS [ 42.839 s]
[INFO] Apache Atlas Web Application 2.1.0 ................. SUCCESS [01:13 min]
[INFO] Apache Atlas Documentation 2.1.0 ................... SUCCESS [  1.562 s]
[INFO] Apache Atlas FileSystem Model 2.1.0 ................ SUCCESS [  2.956 s]
[INFO] Apache Atlas Plugin Classloader 2.1.0 .............. SUCCESS [  1.284 s]
[INFO] Apache Atlas Hive Bridge Shim 2.1.0 ................ SUCCESS [  2.836 s]
[INFO] Apache Atlas Hive Bridge 2.1.0 ..................... SUCCESS [  7.575 s]
[INFO] Apache Atlas Falcon Bridge Shim 2.1.0 .............. SUCCESS [  1.455 s]
[INFO] Apache Atlas Falcon Bridge 2.1.0 ................... SUCCESS [  2.289 s]
[INFO] Apache Atlas Sqoop Bridge Shim 2.1.0 ............... SUCCESS [  0.244 s]
[INFO] Apache Atlas Sqoop Bridge 2.1.0 .................... SUCCESS [  5.200 s]
[INFO] Apache Atlas Storm Bridge Shim 2.1.0 ............... SUCCESS [  0.695 s]
[INFO] Apache Atlas Storm Bridge 2.1.0 .................... SUCCESS [  2.701 s]
[INFO] Apache Atlas Hbase Bridge Shim 2.1.0 ............... SUCCESS [  1.547 s]
[INFO] Apache Atlas Hbase Bridge 2.1.0 .................... SUCCESS [  5.306 s]
[INFO] Apache HBase - Testing Util 2.1.0 .................. SUCCESS [  2.853 s]
[INFO] Apache Atlas Kafka Bridge 2.1.0 .................... SUCCESS [  2.156 s]
[INFO] Apache Atlas classification updater 2.1.0 .......... SUCCESS [  0.955 s]
[INFO] Apache Atlas Impala Hook API 2.1.0 ................. SUCCESS [  0.252 s]
[INFO] Apache Atlas Impala Bridge Shim 2.1.0 .............. SUCCESS [  0.245 s]
[INFO] Apache Atlas Impala Bridge 2.1.0 ................... SUCCESS [  3.901 s]
[INFO] Apache Atlas Distribution 2.1.0 .................... SUCCESS [  01:08 h]
  • 启动
$ cd apache-atlas-sources-2.1.0/distro/target/apache-atlas-2.1.0-server/apache-atlas-2.1.0/bin
$ python atlas_start.py
configured for local hbase.
hbase started.
configured for local solr.
solr started.
setting up solr collections...
starting atlas on host localhost
starting atlas on port 21000
..............................
Apache Atlas Server started!!!

在浏览器打开http://localhost:21000/如果你看到以下画面,说明启动成功

  • 登录

默认用户名和密码是admin/admin,登录后页面

安装示例(quick start)

Atlas安装包中提供两个项目的示例,如果你是想学习,这两个示例是很好的入门

$ cd apache-atlas-sources-2.1.0/distro/target/apache-atlas-2.1.0-server/apache-atlas-2.1.0/bin
$ python quick_start.py
$ python quick_start_v1.py

示例安装完登录http://localhost:21000就能查询到两个示例到元数据信息

相关概念

  • Type

元数据类型定义,这里可以是表,列,视图,物化视图等,还可以细分hive表(hive_table),hbase表(hbase_table)等,甚至可以是一个数据操作行为,比如定时同步从一张表同步到另外一张表这个也可以描述为一个元数据类型,atlas自带了很多类型,但是可以通过调用api自定义类型

  • Classification

分类,通俗点就是给元数据打标签,分类是可以传递的,比如user_view这个视图是基于user这个表生成的,那么如果user打上了HR这个标签,user_view也会自动打上HR的标签,这样的好处就是便于数据的追踪

  • GLOSSARY

词汇表,GLOSSARY包含两个概念,Category(类别)和Term(术语),Category表示一组Term的集合,术语为元数据提供了别名,以便用户更好的理解数据,举个例子,有个pig的表,里面有个猪肾的字段,但很多人更习惯叫做猪腰子,那么就可以给猪肾这个字段加一个Term,不仅更好理解,也更容易搜索到

  • Entity

实体,表示具体的元数据,Atlas管理的对象就是各种Type的Entity

  • Lineage

数据血缘,表示数据之间的传递关系,通过Lineage我们可以清晰的知道数据的从何而来又流向何处,中间经过了哪些操作

UI界面

  • Entity主界面

这里可以查看Entity详细信息,可以查看和添加分类,术语,查看和定义一些属性,标签

  • 血缘关系

sales_fact经过loadSalesDaily操作后生成表sales_fact_daily_mv,再经过loadSalesMonthly后生成表sales_fact_monthly_mv,我们可以看下sales_fact_monthly_mv的血缘图,可以发现该表源头数据不仅来自sales_fact还来自于time_dim

  • 关联关系

可以查询表包含的列,数据库,来源,去向,存储,点击上面切换视图可以切换到图形模式

  • 审计线索

记录对该对象的操作记录

导入hive表

atlas可以通过brige将元数据从数据库系统导入到atlas中,并且支持自动更新,目前从源码上看atlas支持的产品如下

$ ll apache-atlas-sources-2.1.0/addons/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 falcon-bridge/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 falcon-bridge-shim/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 hbase-bridge/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 hbase-bridge-shim/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 hbase-testing-util/
drwxr-xr-x@  5 asan  staff   160 Jan 21 15:47 hdfs-model/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 hive-bridge/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 hive-bridge-shim/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 impala-bridge/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 impala-bridge-shim/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 impala-hook-api/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 kafka-bridge/
drwxr-xr-x@  7 asan  staff   224 Jul 10  2020 models/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 sqoop-bridge/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 sqoop-bridge-shim/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 storm-bridge/
drwxr-xr-x@  6 asan  staff   192 Jan 21 15:47 storm-bridge-shim/

可以看到目前支持falcon,hbase,hive,impala,kafka,sqoop,storm数据库的导入,并且atlas自带有hive相关元数据类型

  • 配置hive-site.xml
<property>
    <name>hive.exec.post.hooks</name>
    <value>org.apache.atlas.hive.hook.HiveHook</value>
</property>
  • 修改hive-env.sh
export HIVE_AUX_JARS_PATH=/home/asan/apache-atlas-sources-2.1.0/distro/target/apache-atlas-2.1.0-hive-hook/apache-atlas-hive-hook-2.1.0/hook/hive
  • 启动 import-hive.sh脚本
cd apache-atlas-sources-2.1.0/distro/target/apache-atlas-2.1.0-hive-hook/apache-atlas-hive-hook-2.1.0/hook-bin
./import-hive.sh
  • 显示以下结果说明导入成功
Enter username for atlas :- admin
Enter password for atlas :- 
Hive Meta Data imported successfully!!!

参考文档

Trackback

no comment untill now

Add your comment now