Atlas官网地址:https://atlas.apache.org/
文档查看地址:https://atlas.apache.org/0.8.4/index.html
下载地址:https://www.apache.org/dyn/closer.cgi/atlas/0.8.4/apache-atlas-0.8.4-sources.tar.gz
1.我的编译环境:
• JDK:1.8.0_144
• Maven: 3.6.1(Maven安装: https://blog.csdn.net/Luomingkui1109/article/details/72669284)
• Linux : Centos6.8
2.编译Atlas源码
2.1 把apache-atlas-0.8.4-sources.tar.gz上传到hadoop102的/opt/software目录下
2.2 解压apache-atlas-0.8.4-sources.tar.gz到/opt/module/目录下面
[luomk@hadoop102 software]$ tar -zxvf apache-atlas-0.8.4-sources.tar.gz -C /opt/module/
2.3 下载Atlas依赖
[luomk@hadoop102 module]$ export MAVEN_OPTS="-Xms2g -Xmx2g"
[luomk@hadoop102 module]$ cd /opt/module/apache-atlas-sources-0.8.4/
[luomk@hadoop102 apache-atlas-sources-0.8.4]$ mvn clean -DskipTests install
提示:执行过程比较长,会下载很多依赖,大约需要半个小时,期间如果报错很有可能是因为TimeOut造成的网络中断,重试即可。若编译成功,则会提示下面的内容
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Apache Atlas Server Build Tools 1.0 ................ SUCCESS [01:27 min]
[INFO] apache-atlas 0.8.4 ................................. SUCCESS [03:43 min]
[INFO] Apache Atlas Integration 0.8.4 ..................... SUCCESS [ 58.111 s]
[INFO] Apache Atlas Common 0.8.4 .......................... SUCCESS [ 7.020 s]
[INFO] Apache Atlas Typesystem 0.8.4 ...................... SUCCESS [01:33 min]
[INFO] Apache Atlas Client 0.8.4 .......................... SUCCESS [ 2.011 s]
[INFO] atlas-client-common 0.8.4 .......................... SUCCESS [ 5.119 s]
[INFO] atlas-client-v1 0.8.4 .............................. SUCCESS [ 4.265 s]
[INFO] Apache Atlas Server API 0.8.4 ...................... SUCCESS [ 3.208 s]
[INFO] Apache Atlas Notification 0.8.4 .................... SUCCESS [ 27.189 s]
[INFO] atlas-client-v2 0.8.4 .............................. SUCCESS [ 3.447 s]
[INFO] Apache Atlas Graph Database Projects 0.8.4 ......... SUCCESS [ 0.283 s]
[INFO] Apache Atlas Graph Database API 0.8.4 .............. SUCCESS [ 2.580 s]
[INFO] Graph Database Common Code 0.8.4 ................... SUCCESS [ 3.774 s]
[INFO] Apache Atlas Titan 1.0.0 GraphDB Impl 0.8.4 ........ SUCCESS [02:19 min]
[INFO] Shaded version of Apache hbase client 0.8.4 ........ SUCCESS [ 10.828 s]
[INFO] Apache Atlas Titan 0.5.4 Graph DB Impl 0.8.4 ....... SUCCESS [ 51.402 s]
[INFO] Apache Atlas Graph Database Implementation Dependencies 0.8.4 SUCCESS [ 2.409 s]
[INFO] Shaded version of Apache hbase server 0.8.4 ........ SUCCESS [ 31.778 s]
[INFO] Apache Atlas Repository 0.8.4 ...................... SUCCESS [ 48.608 s]
[INFO] Apache Atlas Authorization 0.8.4 ................... SUCCESS [ 3.550 s]
[INFO] Apache Atlas Business Catalog 0.8.4 ................ SUCCESS [ 9.705 s]
[INFO] Apache Atlas UI 0.8.4 .............................. SUCCESS [02:47 min]
[INFO] Apache Atlas Web Application 0.8.4 ................. SUCCESS [04:33 min]
[INFO] Apache Atlas Documentation 0.8.4 ................... SUCCESS [01:47 min]
[INFO] Apache Atlas FileSystem Model 0.8.4 ................ SUCCESS [ 3.548 s]
[INFO] Apache Atlas Plugin Classloader 0.8.4 .............. SUCCESS [ 3.193 s]
[INFO] Apache Atlas Hive Bridge Shim 0.8.4 ................ SUCCESS [01:37 min]
[INFO] Apache Atlas Hive Bridge 0.8.4 ..................... SUCCESS [ 18.784 s]
[INFO] Apache Atlas Falcon Bridge Shim 0.8.4 .............. SUCCESS [ 39.190 s]
[INFO] Apache Atlas Falcon Bridge 0.8.4 ................... SUCCESS [ 4.304 s]
[INFO] Apache Atlas Sqoop Bridge Shim 0.8.4 ............... SUCCESS [03:08 min]
[INFO] Apache Atlas Sqoop Bridge 0.8.4 .................... SUCCESS [ 4.165 s]
[INFO] Apache Atlas Storm Bridge Shim 0.8.4 ............... SUCCESS [ 20.915 s]
[INFO] Apache Atlas Storm Bridge 0.8.4 .................... SUCCESS [ 7.858 s]
[INFO] Apache Atlas Hbase Bridge Shim 0.8.4 ............... SUCCESS [ 5.518 s]
[INFO] Apache Atlas Hbase Bridge 0.8.4 .................... SUCCESS [ 30.302 s]
[INFO] Apache Atlas Migration Exporter 0.8.4 .............. SUCCESS [ 4.952 s]
[INFO] Apache Atlas Distribution 0.8.4 .................... SUCCESS [ 2.183 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 31:16 min
[INFO] Finished at: 2019-10-16T15:51:13+08:00
[INFO] ------------------------------------------------------------------------
[root@pdcbdptmp01p apache-atlas-sources-0.8.4]#
2.4 打包
2.4.1 有多种选择,这种方法是比较简单的内嵌方式打包
mvn clean -DskipTests package -Pdist,embedded-hbase-solr
2.4.2 也可以使用以下几种方式进行打包(使用外部的hbase和solr,我们所使用的)
mvn clean -DskipTests package -Pdist
打包结束后,可以到atlas源代码目录的 distro/target目录下拿到打包出来的产 apache-atlas-0.8.4-bin.tar.gz 进行安装即可。
3.安装前环境准备
Atlas安装分为:集成自带的HBase+Solr;集成外部的HBase+Solr。通常企业开发中选择集成外部的HBase+Solr,方便项目整体进行集成操作。
服务名称 |
子服务 |
服务器hadoop102 |
服务器 hadoop103 |
服务器 hadoop104 |
HDFS |
NameNode |
√ |
|
|
DataNode |
√ |
√ |
√ |
|
SecondaryNameNode |
|
|
√ |
|
Yarn |
NodeManager |
√ |
√ |
√ |
Resourcemanager |
|
√ |
|
|
Zookeeper |
QuorumPeerMain |
√ |
√ |
√ |
Kafka |
Kafka |
√ |
√ |
√ |
HBase |
HMaster |
√ |
|
|
HRegionServer |
√ |
√ |
√ |
|
Solr |
Jar |
√ |
√ |
√ |
Hive |
Hive |
√ |
|
|
MySQL |
MySQL |
√ |
|
|
Azkaban |
AzkabanWebServer |
√ |
|
|
AzkabanExecutorServer |
√ |
|
|
|
Atlas |
atlas |
√ |
|
|
服务数总计 |
|
13 |
7 |
7 |
3.1 安装JDK8、Hadoop2.7.2
之前已安装,详见相关文档。
3.2 安装Zookeeper3.4.10
之前已安装,详见相关文档。
3.3 安装Kafka0.11.0.2
之前已安装,详见相关文档。
3.4 安装Hbase1.3.1
之前已安装,详见相关文档。
3.5 安装Solr5.2.1
3.5.1 Solr版本要求必须是5.2.1,见官网。
3.5.2 Solr下载:http://archive.apache.org/dist/lucene/solr/5.2.1/solr-5.2.1.tgz
3.5.3 把solr-5.2.1.tgz上传到hadoop102的/opt/software目录下
3.5.4 解压solr-5.2.1.tgz到/opt/module/目录下面
[luomk@hadoop102 software]$ tar -zxvf solr-5.2.1.tgz -C /opt/module/
3.5.5 修改solr-5.2.1的名称为solr
[luomk@hadoop102 module]$ mv solr-5.2.1/ solr
3.5.6 进入solr/bin目录,修改solr.in.sh文件
[luomk@hadoop102 solr]$ vim bin/solr.in.sh
#添加下列指令
ZK_HOST="hadoop102:2181,hadoop103:2181,hadoop104:2181"
SOLR_HOST="hadoop102"
# Sets the port Solr binds to, default is 8983
#可修改端口号
SOLR_PORT=8983
3.5.7 分发Solr,进行Cloud模式部署
[luomk@hadoop102 module]$ xsync solr
提示:分发完成后,分别对hadoop103、hadoop104主机/opt/module/solr/bin下的solr.in.sh文件,修改为SOLR_HOST=对应主机名。
3.5.8 在三台节点上分别启动Solr,这个就是Cloud模式
[luomk@hadoop102 solr]$ bin/solr start
[luomk@hadoop103 solr]$ bin/solr start
[luomk@hadoop104 solr]$ bin/solr start
提示:启动Solr前,需要提前启动Zookeeper服务。
3.5.9 Web访问8983端口,可指定三台节点中的任意一台IP,http://hadoop102:8983/solr/#/
提示:UI界面出现Cloud菜单栏时,Solr的Cloud模式才算部署成功。
3.5.10 编写Solr启动停止脚本
(1)在hadoop102的/home/luomk/bin目录下创建脚本
[luomk@hadoop102 bin]$ vim s.sh
在脚本中编写如下内容
#!/bin/bash
case $1 in
"start"){
for i in hadoop102 hadoop103 hadoop104
do
ssh $i "/opt/module/solr/bin/solr start"
done
};;
"stop"){
for i in hadoop102 hadoop103 hadoop104
do
ssh $i "/opt/module/solr/bin/solr stop"
done
};;
esac
(2)增加脚本执行权限
[luomk@hadoop102 bin]$ chmod 777 s.sh
(3)Solr集群启动脚本
[luomk@hadoop102 module]$ s.sh start
(4)Solr集群停止脚本
[luomk@hadoop102 module]$ s.sh stop
3.6 安装Hive1.2.1
之前已安装,详见相关文档
3.7 安装Azkaban2.5.0
之前已安装,详见相关文档
3.8 安装Atlas0.8.4
3.8.1 把apache-atlas-0.8.4-bin.tar.gz上传到hadoop102的/opt/software目录下
3.8.2 解压apache-atlas-0.8.4-bin.tar.gz到/opt/module/目录下面
[luomk@hadoop102 software]$ tar -zxvf apache-atlas-0.8.4-bin.tar.gz -C /opt/module/
3.8.3 修改apache-atlas-0.8.4的名称为atlas
[luomk@hadoop102 module]$ mv apache-atlas-0.8.4/ atlas
4.Atlas集成外部框架
4.1 Atlas集成Hbase
4.1.1 进入/opt/module/atlas/conf/目录,修改配置文件
[luomk@hadoop102 conf]$ vim atlas-application.properties
#修改atlas存储数据主机
atlas.graph.storage.hostname=hadoop102:2181,hadoop103:2181,hadoop104:2181
4.1.2 进入到/opt/module/atlas/conf/hbase路径,添加Hbase集群的配置文件到${Atlas_Home}
[luomk@hadoop102 hbase]$
ln -s /opt/module/hbase/conf/ /opt/module/atlas/conf/hbase/
4.1.3 在/opt/module/atlas/conf/atlas-env.sh中添加HBASE_CONF_DIR
[luomk@hadoop102 conf]$ vim atlas-env.sh
#添加HBase配置文件路径
export HBASE_CONF_DIR=/opt/module/atlas/conf/hbase/conf
4.2 Atlas集成Solr
4.2.1 进入/opt/module/atlas/conf目录,修改配置文件
[luomk@hadoop102 conf]$ vim atlas-application.properties
#修改如下配置
atlas.graph.index.search.solr.zookeeper-url=hadoop102:2181,hadoop103:2181,hadoop104:2181
2.2.2 将Atlas自带的Solr文件夹拷贝到外部Solr集群的各个节点。
[luomk@hadoop102 conf]$
cp -r /opt/module/atlas/conf/solr /opt/module/solr/
4.2.3 进入到/opt/module/solr路径,修改拷贝过来的配置文件名称为atlas_conf
[luomk@hadoop102 solr]$ mv solr atlas_conf
4.2.4 在Cloud模式下,启动Solr(需要提前启动Zookeeper集群),并创建collection
[luomk@hadoop102 solr]$ bin/solr create -c vertex_index -d /opt/module/solr/atlas_conf -shards 3 -replicationFactor 2
[luomk@hadoop102 solr]$ bin/solr create -c edge_index -d /opt/module/solr/atlas_conf -shards 3 -replicationFactor 2
[luomk@hadoop102 solr]$ bin/solr create -c fulltext_index -d /opt/module/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可以执行如下命令。
[luomk@hadoop102 solr]$ bin/solr delete -c ${collection_name}
4.2.5 验证创建collection成功
登录solr web控制台:http://hadoop102:8983/solr/#/~cloud 看到如下图显示:
4.3 Atlas集成Kafka
4.3.1 进入/opt/module/atlas/conf/目录,修改配置文件atlas-application.properties
[luomk@hadoop102 conf]$ vim atlas-application.properties
######### Notification Configs #########
atlas.notification.embedded=false
atlas.kafka.zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181
atlas.kafka.bootstrap.servers=hadoop102:9092,hadoop103:9092,hadoop104:9092
atlas.kafka.zookeeper.session.timeout.ms=4000
atlas.kafka.zookeeper.connection.timeout.ms=2000
atlas.kafka.enable.auto.commit=true
4.3.2 启动Kafka集群,并创建Topic
[luomk@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181,hadoop103:2181,hadoop104:2181 --create --replication-factor 3 --partitions 3 --topic _HOATLASOK
[luomk@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181,hadoop103:2181,hadoop104:2181 --create --replication-factor 3 --partitions 3 --topic ATLAS_ENTITIES
4.4 Atlas其他配置
4.4.1 进入/opt/module/atlas/conf/目录,修改配置文件atlas-application.properties
[luomk@hadoop102 conf]$ vim atlas-application.properties
######### Server Properties #########
atlas.rest.address=http://hadoop102: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.zookeeper.quorum=hadoop102:2181,hadoop103:2181,hadoop104:2181
4.4.2 记录性能指标,进入/opt/module/atlas/conf/路径,修改当前目录下的atlas-log4j.xml
[luomk@hadoop102 conf]$ vim atlas-log4j.xml
#去掉如下代码的注释
4.5 Atlas集成Hive
4.5.1 进入/opt/module/atlas/conf/目录,修改配置文件atlas-application.properties
[luomk@hadoop102 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=primary
4.5.2 将atlas-application.properties配置文件加入到atlas-plugin-classloader-1.0.0.jar中
[luomk@hadoop102 hive]$ zip -u /opt/module/atlas/hook/hive/atlas-plugin-classloader-0.8.4.jar /opt/module/atlas/conf/atlas-application.properties
[luomk@hadoop102 hive]$ cp /opt/module/atlas/conf/atlas-application.properties /opt/module/hive/conf/
原因:这个配置不能参照官网,将配置文件考到hive的conf中。参考官网的做法一直读取不到atlas-application.properties配置文件,看了源码发现是在classpath读取的这个配置文件,所以将它压到jar里面。
4.5.3 在/opt/module/hive/conf/hive-site.xml文件中设置Atlas hook
[luomk@hadoop102 conf]$ vim hive-site.xml
hive.exec.post.hooks
org.apache.atlas.hive.hook.HiveHook
[luomk@hadoop102 conf]$ vim hive-env.sh
#在tez引擎依赖的jar包后面追加hive插件相关jar包
export HIVE_AUX_JARS_PATH=/opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-lzo-0.4.20.jar$TEZ_JARS,/opt/module/atlas/hook/hive/atlas-plugin-classloader-0.8.4.jar,/opt/module/atlas/hook/hive/hive-bridge-shim-0.8.4.jar
5.集群启动
5.1 启动Hadoop集群
[luomk@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh
[luomk@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh
5.2 启动Zookeeper集群
[luomk@hadoop102 zookeeper-3.4.10]$ zk.sh start
5.3. 启动Kafka集群
[luomk@hadoop102 kafka]$ kf.sh start
5.4 启动Hbase集群:
[luomk@hadoop102 hbase]$ bin/start-hbase.sh
5.5 启动Solr集群
[luomk@hadoop102 solr]$ bin/solr start
[luomk@hadoop103 solr]$ bin/solr start
[luomk@hadoop104 solr]$ bin/solr start
5.6 进入/opt/module/atlas路径,重新启动Atlas服务
[luomk@hadoop102 atlas]$ bin/atlas_stop.py
[luomk@hadoop102 atlas]$ bin/atlas_start.py
提示:错误信息查看路径:/opt/module/atlas/logs/*.out和application.log
访问地址:http://hadoop102:21000
注意:等待时间大概2分钟。
账户:admin
密码:admin
6.将Hive元数据导入Atlas
6.1 配置Hive环境变量
[luomk@hadoop102 hive]$ sudo vim /etc/profile
#配置Hive环境变量
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin/
[luomk@hadoop102 hive]$ source /etc/profile
6.2 启动Hive,如果Hive能正常启动说明环境OK,就可以退出Hive客户端
[luomk@hadoop102 hive]$ hive
hive (default)> show databases;
hive (default)> use gmall;
6.3 在/opt/module/atlas/路径,将Hive元数据导入到Atlas
[luomk@hadoop102 atlas]$ bin/import-hive.sh
Using Hive configuration directory [/opt/module/hive/conf]
Log file for import is /opt/module/atlas/logs/import-hive.log
log4j:WARN No such property [maxFileSize] in org.apache.log4j.PatternLayout.
log4j:WARN No such property [maxBackupIndex] in org.apache.log4j.PatternLayout.
输入用户名:admin;输入密码:admin
Enter username for atlas :- admin
Enter password for atlas :-
Hive Meta Data import was successful!!!
7.Atlas常用配置(可选)
7.1 配置内存
如果计划存储数万个元数据对象,建议调整参数值获得最佳的JVM GC性能。以下是常见的服务器端选项
修改配置文件/opt/module/atlas/conf/atlas-env.sh
#设置Atlas内存
export ATLAS_SERVER_OPTS="-server -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+PrintTenuringDistribution -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dumps/atlas_server.hprof -Xloggc:logs/gc-worker.log -verbose:gc -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1m -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintGCTimeStamps"
#建议JDK1.7使用以下配置
export ATLAS_SERVER_HEAP="-Xms15360m -Xmx15360m -XX:MaxNewSize=3072m -XX:PermSize=100M -XX:MaxPermSize=512m"
#建议JDK1.8使用以下配置
export ATLAS_SERVER_HEAP="-Xms15360m -Xmx15360m -XX:MaxNewSize=5120m -XX:MetaspaceSize=100M -XX:MaxMetaspaceSize=512m"
#如果是Mac OS用户需要配置
export ATLAS_SERVER_OPTS="-Djava.awt.headless=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="
# 参数说明: -XX:SoftRefLRUPolicyMSPerMB 此参数对管理具有许多并发用户的查询繁重工作负载的GC性能特别有用。
7.2 配置用户名密码
Atlas支持以下身份验证方法:File、Kerberos协议、LDAP协议
通过修改配置文件atlas-application.properties文件开启或关闭三种验证方法
atlas.authentication.method.kerberos=true|false
atlas.authentication.method.ldap=true|false
atlas.authentication.method.file=true|false
如果两个或多个身份证验证方法设置为true,如果较早的方法失败,则身份验证将回退到后一种方法。例如,如果Kerberos身份验证设置为true并且ldap身份验证也设置为true,那么,如果对于没有kerberos principal和keytab的请求,LDAP身份验证将作为后备方案。
本文主要讲解采用文件方式修改用户名和密码设置。其他方式可以参见官网配置即可。
7.2.1 打开/opt/module/atlas/conf/users-credentials.properties文件
[luomk@hadoop102 conf]$ vim users-credentials.properties
#username=group::sha256-password
admin=ADMIN::8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
rangertagsync=RANGER_TAG_SYNC::e3f67240f5117d1753c940dae9eea772d36ed5fe9bd9c94a300e40413f1afb9d
(1)admin是用户名称
(2)8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918是采用sha256加密的密码,默认密码为admin。
7.2.2 例如:修改用户名称为luomk,密码为luomk
(1)获取sha256加密的luomk密码
[luomk@hadoop102 conf]$ echo -n "luomk"|sha256sum
2628be627712c3555d65e0e5f9101dbdd403626e6646b72fdf728a20c5261dc2
(2)修改用户名和密码
[luomk@hadoop102 conf]$ vim users-credentials.properties
#username=group::sha256-password
luomk=ADMIN::2628be627712c3555d65e0e5f9101dbdd403626e6646b72fdf728a20c5261dc2
rangertagsync=RANGER_TAG_SYNC::e3f67240f5117d1753c940dae9eea772d36ed5fe9bd9c94a300e40413f1afb9d