Apache Atlas2.0部署手册
介绍
Atlas是一组可扩展和可扩展的核心基础治理服务,使企业能够有效地满足Hadoop中的合规性要求,并允许与整个企业数据生态系统集成。
Apache Atlas为组织提供了开放的元数据管理和治理功能,以建立其数据资产的目录,对这些资产进行分类和治理,并为数据科学家,分析师和数据治理团队提供围绕这些数据资产的协作功能。
特征:
- 元数据类型和实例
- 分类
- 血缘分析
- 数据安全
- 环境准备
集群版本:Cloudear Hadoop 6.1
Maven 3.5+
Jdk1.8.0
-
安装
-
下载源码包
下载地址:https://www.apache.org/dyn/closer.cgi/atlas/2.0.0/apache-atlas-2.0.0-sources.tar.gz
wget https://mirror-hk.koddos.net/apache/atlas/2.0.0/apache-atlas-2.0.0-sources.tar.gz
解压缩
tar -zxvf apache-atlas-2.0.0-sources.tar.gz
-
编译打包
编译前修改Maven源配置。
添加阿里源和中央仓库。
<mirror>
<id>mvn</id>
<mirrorOf>mvnrepository</mirrorOf>
<url>http://mvnrepository.com/</url>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
否则编译过程中,某些包会下载不下来。
编译打包命令
export MAVEN_OPTS="-Xms2g -Xmx2g"
mvn clean -DskipTests install
由于采用zookeeper,hbase,kafka都是采用的外部依赖,所以打包的时候不用选择集成打包
mvn clean -DskipTests package -Pdist
编译过程中遇到以下异常,则需要检查maven版本和jdk版本。
Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce (enforce-versions) on project
Maven-enforcer-plugin插件是对maven编译环境进行限制的
打开pom.xml查看限制
这发现Maven版本要求为3.5.0+,而本地为3.6.0没有问题。
然后查看java版本
发现是JDK1.8的小版本小了。
故更改限制重新弄编译即可。
编译成功后的包都放在了
distro/target 目录下
Atlas服务就是apache-atlas-2.0.0-server,将它移动到我们/opt/atlas目录下
-
配置修改修改atlas-env.sh
修改JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera
调大atlas服务的JVM内存
export ATLAS_SERVER_HEAP="-Xms15360m -Xmx15360m -XX:MaxNewSize=5120m -XX:MetaspaceSize=100M -XX:MaxMetaspaceSize=512m"
修改atlas-application.properties
-
修改Hbase依赖配置
#zookeeper集群地址
atlas.graph.storage.hostname=cdhmaster02:2181,cdhslave01:2181,cdhslave02:2181
- 修改Solr索引依赖配置
这里我们采用Solr做索引的存储,如果选择elasticsearch可以参考官网文档进行配置
# Graph Search Index
atlas.graph.index.search.backend=solr
#Solr
#atlas2.0 只支持solrcloud,不支持http mode
atlas.graph.index.search.solr.mode=cloud
atlas.graph.index.search.solr.zookeeper-url=cdhmaster02:2181,cdhslave01:2181,cdhslave02:2181/solr
atlas.graph.index.search.solr.zookeeper-connect-timeout=60000
atlas.graph.index.search.solr.zookeeper-session-timeout=60000
atlas.graph.index.search.solr.wait-searcher=true
- 修改kafka依赖配置
#是否使用嵌入的kafka,我选择使用外部的,设置为false
atlas.notification.embedded=false
atlas.kafka.zookeeper.connect=cdhmaster02:2181,cdhslave01:2181,cdhslave02:2181
atlas.kafka.bootstrap.servers=cdhmaster02:9092,cdhslave01:9092,cdhslave02:9092
- 修改atlas服务相关配置
atlas.server.http.port=28000 #默认为21000和集群impala端口冲突
atlas.rest.address=http://cdhslave03:28000
atlas.audit.hbase.zookeeper.quorum=cdhmaster02:2181,cdhslave01:2181,cdhslave02:2181
- 添加hive,sqoop的hook配置
######### Hive Hook Configs #######
atlas.hook.hive.synchronous=false
atlas.hook.hive.numRetries=3
atlas.hook.hive.queueSize=10000
######### Sqoop Hook Configs #######
atlas.hook.sqoop.synchronous=false
atlas.hook.sqoop.numRetries=3
atlas.hook.sqoop.queueSize=10000
启动过程中的坑
由于配置文件修改过多次,而且atlas第一次启动的时候会将某些配置存储到Hbase当中,而后启动后端存储配置会默认覆盖配置文件中的配置
所以当第一次启动失败后,修改了配置,建议进入Hbase清空表后在重启
-
集成Hive和Sqoop Hook
- Atlas配置Hook
将apache-atlas-hive-hook-2.0.0/hook/和apache-atlas-sqoop-hook-2.0.0/hook/
复制到$ATLAS_HOME$/hook目录下
- Hive,sqoop配置Hook
把atlas-application.properties打入atlas-plugin-classloader-2.0.0.jar
zip -u atlas-plugin-classloader-2.0.0.jar atlas-application.properties
hive,sqoop两个都需要做此操作
分发配置文件和Hook插件
将atlas-application.properties文件夹复制到hive/conf和sqoop/conf目录下
CDH的配置文件目录都在 /etc下
/etc/hive/conf
/etc/sqoop/conf
将hook目录放到好管理的目录下,我这里选择/opt/atlas
以上操作需要在集群各个节点中执行
- 在CDH中修改Hive,Sqoop配置文件
Hive
配置搜索hive-site.xml的Hive客户端高级配置代码段
hive-site.xml的Hive 服务高级配置代码段
hive-site.xml 的 HiveServer2 高级配置代码段(安全阀)
配置搜索HIVE_AUX_JARS_PATH
配置搜索hiveserver2,HiveServer2 环境高级配置代码段(安全阀)
<property>
<name>hive.exec.post.hooks</name>
<value>org.apache.atlas.hive.hook.HiveHook</value>
</property>
<property>
<name>hive.reloadable.aux.jars.path</name>
<value>/opt/atlas/hook/hive</value>
</property>
Sqoop
搜索sqoop-site.xml 客户端高级配置代码段(安全阀)
<property>
<name>sqoop.job.data.publish.class</name>
<value>org.apache.atlas.sqoop.hook.SqoopHook</value>
</property>
在sqoop lib中链接/hook/sqoop/*.jar
ln -s /opt/atlas/hook/sqoop/*.jar /opt/cloudera/parcels/CDH-6.1.0-1.cdh6.1.0.p0.770702/lib/sqoop/lib/
ln -s /opt/atlas/hook/sqoop/atlas-sqoop-plugin-impl/*.jar /opt/cloudera/parcels/CDH-6.1.0-1.cdh6.1.0.p0.770702/lib/sqoop/lib/
所有sqoop节点执行
问题记录
在本人的环境中,配置atlas hook后使用sqoop出现以下异常:
java.lang.ClassNotFoundException: org.apache.commons.configuration.Configuration
原因是sqoop缺少commons-configuration jar包
将atlas源码中的 commons-configuration-1.10.jar上传到各个sqoop节点sqoop/lib目录下即可解决。
-
启动使用Atlas
启动之前需要提前创建solr索引和kafka topic
实例化atlas配置文件
solrctl instancedir --create atlas ${ATLAS_HOME}/conf/solr
创建collection
solrctl collection --create vertex_index -s 1 -c atlas -r 1
solrctl collection --create edge_index -s 1 -c atlas -r 1
solrctl collection --create fulltext_index -s 1 -c atlas -r 1
启动:
bin/atlas_start.py
初始密码admin admin
导入Hive元数据:
将hook/hive-bin下的import_hive.sh移动到bin目录下
导入元数据之前需要配置HIVE_HOME和HIVE_CONF_DIR环境变量
进入系统就可以查看hive元数据,以及血缘图
部分内容摘自:
https://www.freesion.com/article/1976139811/
https://blog.csdn.net/Young2018/article/details/103930308/ 屋顶看飞机