数仓元数据管理之Atlas 整合hive和HBase(2.1.0)
1. 整合Hive
配置了hive的钩子后,在hive中做任何操作,都会被钩子所感应到,并以事件的形式发布到kafka,然后,atlas的Ingest模块会消费到kafka中的消息,并解析生成相应的atlas元数据写入底层的Janus图数据库来存储管理;
修改hive-env.sh
export HIVE_AUX_JARS_PATH=/opt/apps/apache-atlas-2.1.0/hook/hive
修改hive-site.xml
<property>
<name>hive.exec.post.hooks
</name>
<value>org.apache.atlas.hive.hook.HiveHook
</value>
</property>
注意,这里其实是执行后的监控,可以有执行前,执行中的监控。其实就是一个执行生命周期的回调监控。
同步配置 拷贝atlas配置文件atlas-application.properties到hive配置目录 添加两行配置:
atlas.hook.hive.synchronous=false
atlas.rest.address=http://doit33:21000
hive元数据import atlas安装之前,hive中已存在的表,钩子是不会自动感应并生成相关元数据的; 可以通过atlas的一个工具,来对已存在的hive库或表进行元数据导入;
bin/import-hive.sh
bin/import-hive.sh
[-d
<database regex
> OR --database
<database regex
>] [-t
<table regex
> OR --table
<table regex
>]
bin/import-hive.sh
[-f
<filename
>]
bin/import-hive.sh 这是全量导入
配置好钩子之后,hive中尝试创建一个测试表,再看一下atlas中是否可以搜索到。可以就算配置成功了。
2. 整合HBase
注册hook 编辑hbase‐site.xml,添加如下配置
<property> <name>hbase.coprocessor.master.classes
</name> <value>org.apache.atlas.hbase.hook.HBaseAtlasCoprocessor
</value> </property>
引入依赖
ln ‐s
<atlas package
>/hook/hbase/*
<hbase‐home
>/lib/
引入配置 拷贝一个atlas‐application.properties文件到hbase的conf目录中,并添加如下配置
atlas.hook.hbase.synchronous=false atlas.hook.hbase.numRetries=3 atlas.hook.hbase.queueSize=10000 atlas.cluster.name=primary atlas.kafka.zookeeper.connect=doit01:2181,doit02:2181,doit:2181 atlas.kafka.zookeeper.connection.timeout.ms=30000 atlas.kafka.zookeeper.session.timeout.ms=60000 atlas.kafka.zookeeper.sync.time.ms=20
3. 整合Sqoop
注册hook 编辑sqoop‐site.xml,添加如下配置
<property> <name>sqoop.job.data.publish.class</name> <value>org.apache.atlas.sqoop.hook.SqoopHook</value>
</property>
引入依赖
ln /opt/apps/apache‐atlas‐2.1.0/hook/sqoop/* /opt/apps/sqoop‐1.4.7/lib/
引入配置 # 拷贝一个atlas‐application.properties文件到sqoop的conf目录中,并添加如下配置
atlas.hook.sqoop.synchronous=false
atlas.hook.sqoop.numRetries=3
atlas.hook.sqoop.queueSize=10000