Atlas安装详解

一、Atlas简介

1.Atlas概述

Apache Atlas为组织提供开放式元数据管理和治理功能,用以构建其数据资产目录,对这些资产进行分类和管理,并为数据分析师和数据治理团队,提供围绕这些数据资产的协作功能,它为Hadoop集群提供了包括 数据分类、集中策略引擎、数据血缘、安全和生命周期管理在内的元数据治理核心能力。

2. Atlas框架原理

Atlas安装详解

2.1 Core层

Atlas核心包含以下组件:
2.1.1 类型系统(Type System): 用户为他们想要管理的元数据对象定义模型。Type System称为“实体”的“类型”实例,表示受管理的实际元数据对象。
2.1.2 图形引擎(Graph Engine): Atlas在内部使用Graph模型持久保存它管理的元数据对象。
2.1.3 采集/导出(Ingest/Export):采集组件允许将元数据添加到Atlas。同样,“导出”组件将Atlas检测到的元数据更改公开为事件。

2.2 Integration层

在Atlas中,用户可以使用以下的两种方式管理元数据:
2.2.1 API: Atlas的所有功能都通过REST API向最终用户暴露,该API允许创建,更新和删除类型和实体。它也是查询和发现Atlas管理的类型和实体的主要机制。
2.2.2 Messaging: 除了API之外,用户还可以选择使用基于Kafka的消息传递接口与Atlas集成。

2.3 Metadata sources层

使用HDFS进行存储,使用MapReduce进行计算。
目前,Atlas支持从以下来源提取和管理元数据:HBase 、Hive、Sqoop、Storm、Kafka

2.4 Applications层

Atlas管理的元数据被各种应用程序使用,以满足许多治理需求。
2.4.1 Atlas Admin UI: 该组件是一个基于Web的应用程序,允许数据管理员和科学家发现和注释元数据。这里最重要的是搜索界面和类似SQL的查询语言,可用于查询Atlas管理的元数据类型和对象。
2.4.2 Ranger Tag Based Policies:权限管理模块

二、下载

1.Atlas官网地址

https://atlas.apache.org/

2.下载地址

https://www.apache.org/dyn/closer.cgi/atlas/0.8.4/apache-atlas-0.8.4-sources.tar.gz
Solr下载: http://archive.apache.org/dist/lucene/solr/5.2.1/solr-5.2.1.tgz

三、安装

1.安装环境准备

1.1安装Maven

(1)解压apache-maven-3.6.1-bin.tar.gz
[[email protected] soft]$ tar -zxvf apache-maven-3.6.1-bin.tar.gz -C /opt/
(2)修改apache-maven-3.6.1的名称为maven
[[email protected] opt]$ mv apache-maven-3.6.1/ maven
(3)配置Maven环境变量
[[email protected] opt]$ vim /etc/profile
#MAVEN_HOME
export MAVEN_HOME=/opt/module/maven
export PATH=PATH:PATH:MAVEN_HOME/bin
(4)测试安装结果
[[email protected]a3 opt]$ source /etc/profile
[[email protected] opt]$ mvn -v
(5)修改setting.xml,指定为阿里云
[[email protected] maven]$ cd conf
[[email protected] maven]$ vim settings.xml

nexus-aliyun central Nexus aliyun http://maven.aliyun.com/nexus/content/groups/public ### 1.2安装Solr集群(只装了单节点) (1)解压solr-5.2.1.tgz [[email protected] soft]$ tar -zxvf solr-5.2.1.tgz -C /opt/ (2)修改solr-5.2.1的名称为solr [[email protected] opt]$ mv solr-5.2.1/ solr (3)进入solr/bin目录,修改solr.in.sh文件(如果是solr集群模式,分发solr目录到其他节点,修改SOLR_HOST为当节点) [[email protected] solr]$ vim bin/solr.in.sh #添加下列指令 ZK_HOST="bigdata3.jms.com:2181,bigdata2.jms.com:2181,bigdata1.jms.com:2181" SOLR_HOST="bigdata3.jms.com" Sets the port Solr binds to, default is 8983 #可修改端口号 SOLR_PORT=8983 (4)启动solr(先启动Zookeeper服务),cloud模式。(如果是solr集群模式,都可启动并访问) [[email protected] solr]$ bin/solr start -c -z bigdata3.jms.com:2181,bigdata2.jms.com:2181,bigdata1.jms.com:2181 -p 8983 (5)Web访问8983端口 http://bigdata3.jms.com:8983/solr/#/

提示:UI界面出现Cloud菜单栏时,solr的Cloud模式才算部署成功。

1.3其他环境要求

JDK8、稳定运行的Hadoop集群、Zookeeper集群、Hbase集群(要求1.x)Hive数据仓库、Kafka集群、Solr集群(5.2.1)

2.安装Atlas

Atlas对Hadoop、Solr、Kafka、Hbase等的版本都有要求,hdp集群的版本都较低,故折中选择Atlas0.84
2.1 编译Atlas源码包
(1)解压apache-atlas-0.8.4-sources.tar.gz
[[email protected] soft]$ tar -zxvf apache-atlas-0.8.4-sources.tar.gz -C /opt/module/
(2)修改apache-atlas-sources-0.8.4的名称为atlas
[[email protected] opt]$ mv apache-atlas-sources-0.8.4/ atlas
(3)构建Atlas
[[email protected] atlas]$ export MAVEN_OPTS="-Xms2g -Xmx2g"
[[email protected] atlas]$ mvn clean -DskipTests install#一定要在atlashomebin2.2Atlas1apacheatlas0.8.4bin.tar.gz[root@bigdata3soft]{atlas_home}执行 提示:需翻墙,网络要求很高,尝试多次未果,下载网上开源编译好的bin包 2.2 安装Atlas 编译包 (1)解压apache-atlas-0.8.4-bin.tar.gz [[email protected] soft] tar -zxvf apache-atlas-0.8.4-bin.tar.gz -C /opt/
(2)修改apache-atlas-0.8.4的名称为atlas
[[email protected] opt]$ mv apache-atlas-0.8.4/ atlas

3.集成外部Hbase

(1)进入/opt/atlas/conf/目录,修改配置文件
[[email protected] conf]$ vim atlas-application.properties
#修改atlas存储数据主机(hbase对应zk的主机名)
atlas.graph.storage.hostname=bigdata3.jms.com,bigdata2.jms.com,bigdata1.jms.com
(2)进入/opt/atlas/conf/hbase路径,添加Hbase集群的配置文件到 AtlasHome[root@bigdata3hbase]{Atlas_Home} [[email protected] hbase] ln -s /usr/hdp/2.6.5.0-292/hbase/conf/ /opt/atlas/conf/hbase/
(3)在/opt/atlas/conf/atlas-env.sh中添加HBASE_CONF_DIR
[[email protected] conf]$ vim atlas-env.sh
#添加HBase配置文件路径
export HBASE_CONF_DIR=/opt/atlas/conf/hbase/conf

4.集成外部Solr

(1)进入/opt/module/atlas/conf目录,修改配置文件
[[email protected] conf]$ vim atlas-application.properties
修改如下配置
atlas.graph.index.search.solr.zookeeper-url=bigdata3.jms.com:2181,bigdata2.jms.com:2181,bigdata1.jms.com:2181
(2)将Atlas自带的Solr文件夹拷贝到外部Solr集群的节点上。
[[email protected] conf]$ cp -r /opt/atlas/conf/solr /opt/solr/
(3)进入到/opt/module/solr路径,修改拷贝过来的配置文件名称为atlas_conf
[[email protected] solr]$ mv solr atlas_conf
(4)在Cloud模式下,启动Solr(需要提前启动Zookeeper集群),并创建collection
[[email protected] solr]$ bin/solr create -c vertex_index -d /opt/solr/atlas_conf -shards 3 -replicationFactor 2
[[email protected] solr]$ bin/solr create -c edge_index -d /opt/solr/atlas_conf -shards 3 -replicationFactor 2
[[email protected] solr]$ bin/solr create -c fulltext_index -d /opt/solr/atlas_conf -shards 3 -replicationFactor 2
-shards 3:表示该集合分片数为3
-replicationFactor 2:表示每个分片数都有2个备份
vertex_index、edge_index、fulltext_index:表示集合名称
注意:如果需要删除vertex_index、edge_index、fulltext_index等collection可以执行如下命令。
[[email protected] solr]$ bin/solr delete -c ${collection_name}
(5)验证创建collection成功
登录solr web控制台:http://bigdata3.jms.com:8983/solr/#/~cloud 看到如下图显示:

5.集成Hive

(1)进入/opt/atlas/conf/目录,修改配置文件

[[email protected] conf]$ vim atlas-application.properties
######### Hive Hook Configs #######
atlas.hook.hive.synchronous=false
atlas.hook.hive.numRetries=3
atlas.hook.hive.queueSize=10000
atlas.cluster.name=yl_bigdata

(2)将atlas-application.properties配置文件加入到atlas-plugin-classloader-1.0.0.jar中

[[email protected] hive]$ zip -u /opt/atlas/hook/hive/atlas-plugin-classloader-0.8.4.jar /opt/atlas/conf/atlas-application.properties
[[email protected] hive]$ cp /opt/atlas/conf/atlas-application.properties /usr/hdp/2.6.5.0-292/hive/conf/

(3)hdp集群上更改hive-site.xml文件,设置Atlas hook

hive.exec.post.hooks: org.apache.atlas.hive.hook.HiveHook (提示:该属性已有一个变量,在后面添加即可)

6.集成Kafka

(1)进入/opt/atlas/conf/目录,修改配置文件atlas-application.properties

[[email protected] conf]$ vim atlas-application.properties
######### Notification Configs #########
atlas.notification.embedded=false
atlas.kafka.zookeeper.connect=bigdata3.jms.com:2181,bigdata2.jms.com:2181,bigdata1.jms.com:2181
atlas.kafka.bootstrap.servers=bigdata5.jms.com:6667,bigdata6.jms.com:6667,bigdata4.jms.com:6667(提示:hdp集群kafka默认端口是6667)
atlas.kafka.zookeeper.session.timeout.ms=4000
atlas.kafka.zookeeper.connection.timeout.ms=2000
atlas.kafka.enable.auto.commit=true
atlas.notification.create.topics=true
atlas.notification.topics=ATLAS_HOOK,ATLAS_ENTITIES

(2)创建Topic(可以不创建,启动Atlas会自动创建)

[[email protected] kafka]$ bin/kafka-topics.sh --zookeeper bigdata3.jms.com:2181,bigdata2.jms.com:2181,bigdata1.jms.com:2181
–create --replication-factor 3 --partitions 3 --topic ATLAS_HOOK
[[email protected] kafka]$ bin/kafka-topics.sh --zookeeper bigdata3.jms.com:2181,bigdata2.jms.com:2181,bigdata1.jms.com:2181
–create --replication-factor 3 --partitions 3 --topic ATLAS_ENTITIES

7.其他配置

atlas-application.properties 其他配置
######### Server port configuration #########
atlas.client.readTimeoutMSecs=60000
atlas.client.connectTimeoutMSecs=60000
######### Security Properties #########
SSL config
atlas.enableTLS=false
######### Server Properties #########
atlas.rest.address=http://bigdata3.jms.com:21000
If enabled and set to true, this will run setup steps when the server starts
atlas.server.run.setup.on.start=false
######### Entity Audit Configs #########
atlas.audit.hbase.tablename=apache_atlas_entity_audit
atlas.audit.zookeeper.session.timeout.ms=1000
atlas.audit.hbase.zookeeper.quorum=bigdata3.jms.com:2181,bigdata2.jms.com:2181,bigdata1.jms.com:2181

8.启动Atlas服务

[[email protected] atlas]$ bin/atlas_start.py
提示:错误信息查看路径:/opt/module/atlas/logs/*.out和application.log
访问地址:http://bigdata3.jms.com:21000
注意:等待时间大概2分钟。
账户:admin
密码:admin

9.将Hive元数据导入Atlas

(1)在/opt/atlas/路径,将Hive元数据导入到Atlas
[[email protected] atlas]$ bin/import-hive.sh
输入用户名:admin;输入密码:admin
(2)导入不成功可参考/opt/atlas/logs/import-hive.log
(3)导入后hive需要执行insert (select)等操作,并且有数据改变才能显示表之间的血缘关系,否则在安装Atlas之前建的库表只有建表的血缘显示。

四、使用

1.界面查看
1.1 访问http://jms.com:21000端口号,进行登录账号密码默认都为admin,登录成功页面如下:
Atlas安装详解
1.2 查询Hive库
1.2.1 选择hive_db,Search
Atlas安装详解
1.2.2 点击dwb库,查看库信息
Atlas安装详解
1.2.3 点击Tables,查看表信息
Atlas安装详解
1.2.4 进入任意表,Properties可看基本信息,Lineage可看表间的血缘关系,Tags可看标签,也可添加标签,Audits可看表修改更新详情,Schema可看字段详情
Atlas安装详解

五、问题解决方案

1.Atlas UI页面出现503错误

Atlas安装详解

1.1首先先排查是否是solr集群是否正常运行,查看solr页面cloud模式是否有vertex_index、edge_index、fulltext_index三个collection

Atlas安装详解
1.2如果不是solr的问题,查看/opt/module/atlas/logs/*.out和log日志,发现是Hbase的问题
Atlas安装详解
1.2.1首先检查Hbase是否正常运行,然后检查Hbase是否有Atlas的信息表,可在Hbase的节点上执行hbase shell,然后list查看
Atlas安装详解
1.2.2因Atlas和Hbase的节点不同,查看atlas-env.sh的HBASE_CONF_DIR指向目录下的文件是否跟Hbase与zk对应的节点相同,最好拷贝一份到Atlas相同节点上

2.导入不成功,查看日志import-hive.log

2.1找不到TaskAttemptContext类
Atlas安装详解

2.1.1缺少hadoop-mapreduce-client-core-2.7.3 jar包,去maven仓库下载对应hadoop版本的jar包放到/opt/atlas/hook/hive/atlas-hive-plugin-impl目录下

2.2导入表失败,读取时间超时(org.apache.atlas.hook.AtlasHookException: HiveMetaStoreBridge.registerTable() failed.)
Atlas安装详解
2.2.1Kafka的问题,hdp的默认端口是6667,在atlas-application.properties修改,首先删除kafka的对应的Topic(ATLAS_HOOK,ATLAS_ENTITIES),修改后重启Atlas服务。

3.ZookeeperException

想要solr重建索引,删除collection后,重建不成功,报找不到索引错误
Could not find configName for collection vertex_index found:[]
Atlas安装详解

3.1 Zookeeper内索引不存在, 在另一个zookeeper集群(测试)安装solr,atlas后确认zookeeper内新增的索引文件,删掉新增的索引文件,重装solr,新建collection。