Atlas 采集 HIVE过程搭建
一、参照文章
● http://atlas.apache.org/#/HookHive
● https://www.cnblogs.com/xizhunet/p/14303932.html#271-%E9%85%8D%E7%BD%AEhive-hook
二、环境清单
● atlas-2.1.0( zookeeper, kafka)
● hive-3.1.2
三、安装步骤
● 将atlas的conf的atlas-applicaiton.properties和该版本的apache-atlas-2.1.0-hive-hook.tar.gz,复制到hive服务的服务器上
● 解压apache-atlas-2.1.0-hive-hook.tar.gz压缩文件,并把里面的hook文件夹拿出来
tar -zxvf apache-atlas-2.1.0-hive-hook.tar.gz
cp apache-atlas-hive-hook-2.1.0/hook ./
ll ./
# 此时文件夹应该有一个hook目录,在我的电脑上是/software/hook
● 进入hive的conf,添加一个hive-site.xml文件。内容请包含下述信息
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 重要:在site文件表明atlas-hook信息 -->
<property>
<name>hive.exec.post.hooks</name>
<value>org.apache.atlas.hive.hook.HiveHook</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<!-- 注意这里写刚刚新创文件的路径 -->
<value>/softdata/hive</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<!-- 这里自己搓自己的mysql的ip地址 -->
<value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<!-- 这里搓自己的mysql账号和密码 -->
<value>123456</value>
</property>
</configuration>
● 修改hive/conf下的hive-env.sh文件,修改下述参数
# HADOOP根目录
HADOOP_HOME=/software/hadoop
# Hive配置文件目录
export HIVE_CONF_DIR=/software/hive/conf
# atlas-hook 解压之后拿出来的路已经
export HIVE_AUX_JARS_PATH=/software/hook/hive
● 修改atlas-application.properties文件
需要修改属性在官网已经说明过了,直接贴出来。没有的属性需要添加。
atlas.kafka.zookeeper.connect 属性需要注意。这个zookeeper应该是atlas监听的kafka注册的zookeeper。
atlas.hook.hive.synchronous=false # whether to run the hook synchronously. false recommended to avoid delays in Hive query completion. Default: false
atlas.hook.hive.numRetries=3 # number of retries for notification failure. Default: 3
atlas.hook.hive.queueSize=10000 # queue size for the threadpool. Default: 10000
atlas.cluster.name=primary # clusterName to use in qualifiedName of entities. Default: primary
atlas.kafka.zookeeper.connect=atlas-kafka-zookeeperIp:port # Zookeeper connect URL for Kafka. Example: localhost:2181
atlas.kafka.zookeeper.connection.timeout.ms=30000 # Zookeeper connection timeout. Default: 30000
atlas.kafka.zookeeper.session.timeout.ms=60000 # Zookeeper session timeout. Default: 60000
atlas.kafka.zookeeper.sync.time.ms=20 # Zookeeper sync time. Default: 20
● 将atlas-application.properties文件放入hook包内的**.jar包中。(和官网不一致,参考第二个文章)
不能将文件放入hive/conf 目录,需要放入hook/hive包内的atlas-plugin-classloader-2.1.0.jar中,因为hook读取该文件是通过classpath读取的。
注意:这个时候应该在atlas-application.properties同级目录下执行。防止上传文件后,文件路径有无。
# 上传
zip -u /software/hook/hive/atlas-plugin-classloader-2.1.0.jar atlas-application.properties
# 检查是否上传成功
jar -vtf /software/hook/hive/atlas-plugin-classloader-2.1.0.jar
# 如果出现类似11783 Sat Sep 18 14:21:22 CST 2021 atlas-application.properties的消息即可
# 但是application.properties前面不应该有任何目录。
● 再将atlas-applicaiton.properties文件复制一份到hive/conf中,并启动import-hive.sh程序。初始化atlas
apache-atlas-hive-hook-2.1.0/hook-bin/import-hive.sh
如果出现需要填写atlas账号密码,并且出现下述日志。说明初始数据导入成功
● 启动hive
hive/bin/hive
四、测试
进入hive中创建一个表,可以到atlas的hive实体中查看是否存在。