Apache Atlas是大数据管理元数据的一个组件,可以集成Hive、Hbase、Kafka等数据源,atlas会将数据源中元数据的更改记录下来,并形成元数据之间的血缘分析关系图,下面记录导入Hive元数据的过程及碰到问题以及解决方法。
安装后配置
首先,在安装好Atlas后,需要修改一些配置。配置文件位于atlas安装目录下/conf/atlas-application.properties文件中。
1.配置JanusGraph使用HBase作为持久化引擎,atlas.graph
2.设置以下属性以配置JanusGraph使用Solr作为索引搜索引擎
3.配置kafka,以'atlas.kafka '作为前缀。
集成Hive的过程
Atlas Hook钩子向Hive注册,监听创建/更新/删除操作,并通过Kafka通知更新Atlas中的元数据,以获取Hive中的更改。按照下面的说明在Hive中设置Atlas钩子。
本例使用atlas2.3.0版本。
hive配置
- 添加以下内容在hive-site.xml中设置Atlas Hook
<property>
<name>hive.exec.post.hooks</name>
<value>org.apache.atlas.hive.hook.HiveHook</value>
</property>
- 解压apache-atlas-2.3.0-hive-hook.tar.gz文件
- 复制解压后的文件中/hook/hive到atlas安装目录下的/hook/hive
- 在hive-env.sh配置文件中添加'export HIVE_AUX_JARS_PATH=atlas安装目录/hook/hive'
- 复制atlas安装目录/conf下atlas-application.properties文件到hive conf目录
导入预定义元数据类型
- 解压apache-atlas-2.3.0-sources.tar.gz文件
- 复制解压后文件中/addons/models到atlas安装目录
- 重新启动atlas及hive,此时可以在atlas UI中选择到hive_db
导入hive元数据
- 导入hive元数据,运行命令import-hive .sh。import-hive在安装目录的hook-bin下。若未找到,可在apache-atlas-2.3.0-hive-hook目录下,执行命令如下
cd apache-atlas-hive-hook-2.3.0/hook-bin/ ./import-hive.sh 说明:若只导入hive下其中一个库,可在命令后加参数 -d 数据库名,如 ./import-hive.sh -d database_name
-
成功导入后,可以在atlas UI中搜索到导入的元数据
导入hive元数据,执行import-hive遇到的问题
问题一: 执行import-hive.sh命令,提示未找到atlas-application.properties。
解决:检查conf/hive下是否有atlas-application.properties文件,若没有,将文件拷贝到hive配置目录下。
问题二: 执行import-hive.sh命令,错误信息如下:
java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder;
解决:此错误为javax.ws.rs-api-2.1.1.jar与执行命令中某个类有冲突了。所以在运行命令时需要排除冲突类。在import-hive.sh命令中找到HIVE_CP_EXCLUDE_LIST="log4j-slf4j-impl\|log4j-1.2-api\|log4j-api\|log4j-core\|log4j-web",修改为HIVE_CP_EXCLUDE_LIST="log4j-slf4j-impl\|log4j-1.2-api\|log4j-api\|log4j-core\|log4j-web\|javax.ws.rs-api-2.1.1"。
问题三:执行import-hive.sh命令,提示导入失败。失败日志提示不存在hive-db。
解决:此错误表示未将atlas预定义类型导入。此时需要检查atlas安装路径下是否有models文件夹,此文件中存放了预定义元数据的一些json文件。查看上面导入预定义元数据类型,根据提示增加models文件夹后需要重启atlas。
问题四:执行import-hive.sh命令,只导入部分元数据,并报Read timed out错误
解决:此错误可能由于kafka配置地址不正确或不存在Topics,atlas服务一直在重新检查kafka,导致调用注册元数据服务时超时。检查kafka配置路径是否正确,注意,在kafka中需要手动增加两个topics:ATLAS_ENTITIES、ATLAS_HOOK。
问题五:在hive中进行create等操作时,未将操作变动同步到atlas
解决:此错误可能为hive配置文件下的atlas-application文件配置中的kafka配置存在问题,最好将atlas中的配置文件直接拷贝到hive配置文件下。