Apache Atlas 元数据管理
官网地址: http://atlas.apache.org/
Apache Atlas 是开源的Hadoop体系的元数据管理和数据治理工具。此次探索主要进行 Apache Atlas 的安装,收集 Hive 元数据和 Spark 元数据。
安装
说明:
- Atlas 2.0.0 版本,依赖 HBase 2.0,由于测试集群 HBase 是 1.2 ,所以重新选择 Atlas 1.2.0 的包
- Graph Search Index 选择的是 ElasticSearch,官方包中 atlas.graph.index.search.hostname 配置名称错误需要注意。
- Kafka、Zookeeper 都是另外安装的,需要注释掉 atlas.notification.embedded 和 atlas.kafka.data 配置
完整配置(atlas-application.properties ):附录1
用户配置:conf/users-credentials.properties
支持 Hive
Atlas Hive hook,通过监听 Hive 的一些操作,生成元数据发送到 Kakfa。
安装使用 Hive Hook
修改 hive-site.xml
1
2
3
4<property>
<name>hive.exec.post.hooks</name>
<value>org.apache.atlas.hive.hook.HiveHook</value>
</property>添加 Atlas Hive hook 的依赖包
复制 ${ATLAS_HOME}/hook/hive 里面的依赖包到 ${HIVE_HOME}/auxlib 中,复制${ATLAS_HOME}/conf/atlas-application.properties 到 ${HIVE_CONF_DIR} 中
验证 Hive Hook
执行下面语句:
1 | create table wangz_test004 as select * from wangz_test |
可以看到操作、数据库、表和字段的一些元数据,血缘关系如下:
支持 Spark
使用开源的 spark-atlas-connector ,在使用过程中发现 spark sql 操作 hive 表时,无法生成 Lineage 信息,我做了一些修改 wForget/spark-atlas-connector/tree/dev
安装使用 spark-atlas-connector
下载源码 wForget/spark-atlas-connector/tree/dev ,进行打包 (mvn clean -DskipTests package)。
复制 1100-spark_model.json 文件到 ${ATLAS_HOME}/models/1000-Hadoop目录下,重启 Atlas。
复制 atlas-application.properties 配置文件到 ${SPARK_HOME}/conf 下面。
执行下面语句启动 spark shell(也可以直接配置到spark 默认配置中)
1 | spark-shell \ |
验证 spark-atlas-connector
执行下面语句:
1 | spark.sql("create table test.wangz_test012 as select * from test.wangz_test").show() |
可以看到操作、数据库、表和字段的一些元数据,血缘关系如下:
TODO
- Spark Sql 操作 Hive Table 时,经过对 spark-atlas-connector 简单的修改,是可以看到血缘关系,不过 table db 等类型还是 spark 类型,需要转换成 hive 类型。(已经完成,参考:wForget/spark-atlas-connector/tree/dev-hive )
附录1
1 | ######### Graph Database Configs ######### |