Apache Atlas 2.0 安装部署详解
- 背景
- 环境配置
- Atlas嵌入式Hbase与Solr的部署方式
- 1、下载源码并编译
- 2、Atlas 启动
- Atlas独立部署
- 1、Atlas独立编译
- 2、Kafka,Zookeeper安装
- 3、Hadoop安装
- 3.1、解压
- 3.2 、查看本机hostname
- 3.3、修改 hadoop-env.sh 配置文件
- 3.4、修改 core-site.xml 配置文件
- 3.5、修改 hdfs-site.xml 配置文件
- 3.6、复制 mapred-site.xml 文件并修改
- 3.7、修改 yarn-site.xml 配置文件
- 3.8、修改 start-yarn.sh 和 stop-yarn.sh 文件,在文件开头添加如下信息
- 3.9、修改 start-dfs.sh 和 stop-dfs.sh 文件,在文件开头添加如下信息
- 3.10、hdfs格式化
- 3.11、配置系统环境变量
- 3.12、设置免密登陆
- 3.13、启动Hadoop
- 4、Hive安装
- 4.1、解压
- 4.2、配置系统环境变量
- 4.3、修改 hive-site.xml 配置文件
- 4.4、将MySQL驱动放到如下目录
- 4.5、Mysql创建hive库
- 4.6、初始化hive库
- 4.7、执行hive命令并测试
- 5、Hbase安装
- 5.1、解压
- 5.2、配置系统环境变量
- 5.3、修改 hbase-env.sh 配置文件
- 5.4、修改 hbase-site.xml 配置文件
- 5.5、启动Hbase
- 6、Solr安装
- 6.1、解压
- 6.2、配置并启动Solr
- 7、Atlas配置并启动
- 7.1、修改 atlas-env.sh 配置文件
- 7.2、修改 atlas-application.properties 配置文件
- 7.3、Atlas 与 Hive 集成
- 7.3.1、修改hive-site.xml
- 7.3.2、修改hive-env.sh
- 7.3.3、hook-hive文件
- 7.3.4、atlas-application.properties 复制文件到 Hive 的conf目录下
- 7.3.5、Hive批量导入工具
- 7.4、Atlas 与 Sqoop 集成
- 7.4.1、解压
- 7.4.2、配置系统环境变量
- 7.4.3、修改sqoop-env.sh配置文件
- 7.4.4、修改sqoop-site.xml 配置文件
- 7.4.5、hook-sqoop文件
- 7.4.6、atlas-application.properties 复制文件到 Sqoop 的conf目录下
- 7.4.7、将/hook/sqoop/*.jar 复制到 Sqoop 的lib目录下
- 7.4.8、将数据库的驱动放到 Sqoop 的lib目录下
- 7.5、启动Atlas
- 7.5、使用Sqoop将DB中的数据导入Atlas
背景
公司在做一个数据治理的售前,选型为Apache Atlas 和 Azure Data Catalog,所以让我拥有了一次研究Apache Atlas的机会。之前从未接触过Atlas,发现网上相关的资料还不是很多,因此记录我在本地搭建Atlas的过程,供各位指正。
在搭建过程中,我分别使用了两种不同的搭建方式:
1、Atlas使用嵌入式Hbase与Solr的部署方式
2、Atlas独立部署(针对环境中已经存在了Hbase、Solr、Zookeeper以及Kafka的情况)
同时各位也可以参考Atlas官方:http://atlas.apache.org.
环境配置
1、Apache Atlas 2.0
2、JDK 1.8.0_251
3、Maven 3.6.3
4、Git
如果是使用Atlas内嵌Hbase与Solr的部署方式,只需上面的环境配置即可。
以下为独立部署时的配置:
5、Hadoop 3.1.1
6、Hbase 2.2.2
7、Hive 3.1.0
8、Solr 7.7.2
9、Zookeeper 3.4.14
10、Kafka 2.0.0
11、Sqoop 1.4.6
注意:Maven的版本需要3.5.0及以上版本,JDK需要Java 8 (Update 151)及以上版本,不然在报如下错误信息:
** MAVEN VERSION ERROR ** Maven 3.5.0 or above is required. See https://maven.apache.org/install.html
** JAVA VERSION ERROR ** Java 8 (Update 151) or above is required.
如果使用Java 9的话,会有如下警告:
** JAVA VERSION WARNING ** Java 9 and above has not been tested with Atlas.
Atlas嵌入式Hbase与Solr的部署方式
1、下载源码并编译
用户从Atlas官网下载Apache Atlas 2.0版本的源码

将源码 apache-atlas-2.0.0-sources.tar.gz 上传至对应的Linux服务器,并解压
1 | tar -zxf apache-atlas-2.0.0-sources.tar.gz |
配置 Maven 镜像仓库
1 | vi $MAVEN_HOME/conf/settings.xml |
在
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!-- 中央仓库1 --> <mirror> <id>repo1</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>https://repo1.maven.org/maven2/</url> </mirror> <!-- 中央仓库2 --> <mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>https://repo2.maven.org/maven2/</url> </mirror> |
进入到解压后的 Atlas 的根目录下

执行Maven编译打包
1 2 | export MAVEN_OPTS="-Xms2g -Xmx2g" mvn clean -DskipTests package -Pdist,embedded-hbase-solr |
在编译过程中可能会发生编译中断的情况,请使用 mvn 命令进行多次编译,直至编译成功

使用此方式编译部署后,Hbase 和 Solr 服务将与Apache Atlas服务器一起启动 / 停止
此种方式仅用于单节点开发,不用于生产
2、Atlas 启动
Atlas编译成功后,会将编译好的文件放置在如下目录中
1 | $Atlas_Source_Home/distro/target |

1 2 | tar -xzvf apache-atlas-{project.version}-server.tar.gz cd atlas-{project.version} |
启动 Atlas
1 2 3 4 | export MANAGE_LOCAL_HBASE=true (设置使用内嵌的zk和hbase) export MANAGE_LOCAL_SOLR=true (设置使用内嵌的solr) bin/atlas_start.py |
启动完成后,可以使用如下命令验证
1 2 | curl -u admin:admin http://localhost:21000/api/atlas/admin/version {"Description":"Metadata Management and Data Governance Platform over Hadoop","Version":"1.0.0","Name":"apache-atlas"} |
Atlas 初始化用户名密码为 admin
如果发生异常,请查看 Atlas 的日志
1 | cat logs/application.log |
在 Web 访问 Atlas

使用如下命令停止 Atlas
1 | bin/atlas_stop.py |
另外官网说可以使用
1 | bin/quick_start.py |
导入简单示例,但是我在本地报错,原因暂未找到
Atlas独立部署
1、Atlas独立编译
修改atlas源码工程的pom.xml,将hbase zookeeper hive等依赖的版本修改成自己环境中一致的版本
1 2 3 4 5 | vim apache-atlas-sources-2.0.0/pom.xml <zookeeper.version>3.4.14</zookeeper.version> <hbase.version>2.2.2</hbase.version> <solr.version>7.7.2</solr.version> |
保存退出后,进入到 apache-atlas-sources-2.0.0 目录下,执行如下编译语句
1 2 3 4 | mvn clean -DskipTests install tar -xzvf apache-atlas-{project.version}-server.tar.gz cd atlas-{project.version} |
2、Kafka,Zookeeper安装
如果安装了docker,可以直接使用docker进行部署,使用镜像如下:
1 2 | wurstmeister/kafka:2.11-2.0.0 zookeeper:3.4.14 |
3、Hadoop安装
下载:hadoop-3.1.1.tar.gz
3.1、解压
1 2 3 4 5 | tar -zxvf hadoop-3.1.1.tar.gz mkdir -p data/hadoop_repo cd hadoop-3.1.1/ |
3.2 、查看本机hostname

3.3、修改 hadoop-env.sh 配置文件
1 2 3 | vim etc/hadoop/hadoop-env.sh export JAVA_HOME=/software/jdk/jdk1.8.0_251 |
3.4、修改 core-site.xml 配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 | vim etc/hadoop/core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://node1:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/software/hadoop/data/hadoop_repo</value> </property> </configuration> |
3.5、修改 hdfs-site.xml 配置文件
1 2 3 4 5 6 | vim etc/hadoop/hdfs-site.xml <property> <name>dfs.replication</name> <value>1</value> </property> |
3.6、复制 mapred-site.xml 文件并修改
1 2 3 4 5 6 7 8 9 10 | cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml vim etc/hadoop/mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> |
3.7、修改 yarn-site.xml 配置文件
1 2 3 4 5 6 7 8 9 10 11 12 | vim etc/hadoop/yarn-site.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> </configuration> |
3.8、修改 start-yarn.sh 和 stop-yarn.sh 文件,在文件开头添加如下信息
1 2 3 4 5 6 7 | vim sbin/start-yarn.sh vim sbin/stop-yarn.sh #!/usr/bin/env bash YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root |
3.9、修改 start-dfs.sh 和 stop-dfs.sh 文件,在文件开头添加如下信息
1 2 3 4 5 6 7 8 | vim sbin/start-dfs.sh vim sbin/stop-dfs.sh #!/usr/bin/env bash HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root |
3.10、hdfs格式化
hdfs使用前需要进行格式化(和格式化磁盘类似):不要频繁执行,如果出错,把hadoop_repo目录删除,在执行格式化
确保路径 /software/hadoop/data/hadoop_repo 存在
1 | bin/hdfs namenode -format |
3.11、配置系统环境变量
1 2 3 4 5 6 | vim /etc/profile #Hadoop export HADOOP_HOME=/software/hadoop/hadoop-3.1.1 export HADOOP_COMMON_LIB_NATIVE_DIR=/software/hadoop/hadoop-3.1.1/lib/native export HADOOP_OPTS="-Djava.library.path=/software/hadoop/hadoop-3.1.1/lib" export PATH=$PATH:/software/hadoop/hadoop-3.1.1/sbin:/software/hadoop/hadoop-3.1.1/bin |
保存退出并使之生效
1 | source /etc/profile |
3.12、设置免密登陆
1 | ssh localhost |
如果需要输入密码,则需要设置免密登陆
1 | ssh-keygen -t rsa |
三次回车
1 | cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys |
3.13、启动Hadoop
1 | sbin/start-all.sh |
访问:http://192.168.199.11:8088

4、Hive安装
下载:apache-hive-3.1.0-bin.tar.gz
4.1、解压
1 2 3 | tar -zxvf apache-hive-3.1.0-bin.tar.gz cd apache-hive-3.1.0-bin/ |
4.2、配置系统环境变量
1 2 3 4 5 | vim /etc/profile #Hive export HIVE_HOME=/software/hive/apache-hive-3.1.0-bin export PATH=$HIVE_HOME/bin:$PATH |
保存退出并使之生效
1 | source /etc/profile |
4.3、修改 hive-site.xml 配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | cp conf/hive-default.xml.template conf/hive-site.xml vim conf/hive-site.xml <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.199.11:3306/hive</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> |
4.4、将MySQL驱动放到如下目录
1 | $Hive_Home/lib |
4.5、Mysql创建hive库
4.6、初始化hive库
1 2 | cd bin/ schematool -dbType mysql -initSchema |
4.7、执行hive命令并测试

5、Hbase安装
下载:hbase-2.2.2-bin.tar.gz
5.1、解压
1 2 3 | tar -zxvf hbase-2.2.2-bin.tar.gz cd hbase-2.2.2/ |
5.2、配置系统环境变量
1 2 3 4 5 | vim /etc/profile #Hbase HBASE_HOME=/software/hbase/hbase-2.2.2 export PATH=${HBASE_HOME}/bin:${PATH} |
保存退出并使之生效
1 | source /etc/profile |
5.3、修改 hbase-env.sh 配置文件
1 2 3 | vim conf/hbase-env.sh export JAVA_HOME=/software/jdk/jdk1.8.0_251 |
5.4、修改 hbase-site.xml 配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | vim conf/hbase-site.xml <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://node1:9000/hbase</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> <description>Property from ZooKeeper'sconfig zoo.cfg. The port at which the clients will connect. </description> </property> <property> <name>hbase.tmp.dir</name> <value>/software/hbase/data</value> </property> <!-- zk的位置,zk伪集群,value只有一个,如果是集群,主机名以逗号分隔 --> <property> <name>hbase.zookeeper.quorum</name> <value>node1</value> </property> <!-- false表示单机模式 true表示集群模式 此处必须为true,不然hbase仍用自带的zk,若启动了外部的zookeeper,会导致冲突,hbase启动不起来 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> <description>The mode the cluster will be in. Possible values are false: standalone and pseudo-distributed setups with managed Zookeeper true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh) </description> </property> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> </configuration> |
5.5、启动Hbase
1 | bin/start-hbase.sh |
查看Hbase的两个服务是否全部启动

如果两个服务有未启动成功的,请查看具体日志
1 | cat logs/hbase-root-master-node1.log |
6、Solr安装
下载:solr-7.7.2.tgz
6.1、解压
1 2 3 | tar -zxvf solr-7.7.2.tgz cd solr-7.7.2/ |
6.2、配置并启动Solr
1 | mkdir apache-atlas-conf |
将$Atlas_Home下的solr conf复制到 $Solr_Home/apache-atlas-conf 目录下
1 | cp -r /software/atlas/apache-atlas-sources-2.0.0/distro/target/apache-atlas-2.0.0-server/apache-atlas-2.0.0/conf/solr/ /software/solr/solr-7.7.2/apache-atlas-conf/ |
启动服务
1 | ./bin/solr start -c -z <zookeeper_host:port> -p 8983 |
创建 collection
1 2 3 4 5 | bash ./bin/solr create -c vertex_index -d ./apache-atlas-conf -shards 2 -replicationFactor 2 -force bash ./bin/solr create -c edge_index -d ./apache-atlas-conf -shards 2 -replicationFactor 2 -force bash ./bin/solr create -c fulltext_index -d ./apache-atlas-conf -shards 2 -replicationFactor 2 -force |
7、Atlas配置并启动
7.1、修改 atlas-env.sh 配置文件
1 2 3 | vim conf/atlas-env.sh export HBASE_CONF_DIR=/software/hbase/hbase-2.2.2/conf |
7.2、修改 atlas-application.properties 配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | vim conf/atlas-application.properties atlas.graph.storage.backend=hbase atlas.graph.storage.hbase.table=atlas atlas.graph.storage.hostname=localhost:2181 #Solr #Solr cloud mode properties atlas.graph.index.search.solr.mode=cloud atlas.graph.index.search.solr.zookeeper-url=localhost:2181 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 ######### Notification Configs ######### atlas.kafka.zookeeper.connect=localhost:2181/kafka atlas.kafka.bootstrap.servers=localhost:9092 atlas.kafka.zookeeper.session.timeout.ms=60000 atlas.kafka.zookeeper.connection.timeout.ms=30000 atlas.kafka.zookeeper.sync.time.ms=20 atlas.kafka.auto.commit.interval.ms=1000 atlas.kafka.hook.group.id=atlas ######### Entity Audit Configs ######### atlas.audit.zookeeper.session.timeout.ms=60000 atlas.audit.hbase.zookeeper.quorum=node1:2181 ######### 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 storage.cql.protocol-version=3 storage.cql.local-core-connections-per-host=10 storage.cql.local-max-connections-per-host=20 storage.cql.local-max-requests-per-connection=2000 storage.buffer-size=1024 atlas.ui.editable.entity.types=* |
7.3、Atlas 与 Hive 集成
7.3.1、修改hive-site.xml
1 2 3 4 5 6 | vim hive-site.xml <property> <name>hive.exec.post.hooks</name> <value>org.apache.atlas.hive.hook.HiveHook</value> </property> |
7.3.2、修改hive-env.sh
1 2 3 | vim hive-env.sh export HIVE_AUX_JARS_PATH=/software/atlas/apache-atlas-sources-2.0.0/distro/target/apache-atlas-2.0.0-bin/apache-atlas-2.0.0/hook/hive |
7.3.3、hook-hive文件
复制 apache-atlas-sources-2.0.0/distro/target/apache-atlas-hive-hook-${project.version}/hook/hive 全部内容到 apache-atlas-sources-2.0.0/distro/target/apache-atlas-2.0.0-server/apache-atlas-2.0.0/hook/hive
7.3.4、atlas-application.properties 复制文件到 Hive 的conf目录下
7.3.5、Hive批量导入工具
1 2 3 4 5 6 7 | Usage 1: <atlas package>/hook-bin/import-hive.sh Usage 2: <atlas package>/hook-bin/import-hive.sh [-d <database regex> OR --database <database regex>] [-t <table regex> OR --table <table regex>] Usage 3: <atlas package>/hook-bin/import-hive.sh [-f <filename>] File Format: database1:tbl1 database1:tbl2 database2:tbl1 |
如果在 hook-bin 目录下未找到 import-hive.sh
可以将下面路径下的文件复制过来
apache-atlas-sources-2.0.0/addons/hive-bridge/src/bin/import-hive.sh
7.4、Atlas 与 Sqoop 集成
下载:sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
7.4.1、解压
1 2 3 | tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz cd sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ |
7.4.2、配置系统环境变量
1 2 3 4 5 | vim /etc/profile #Sqoop export SQOOP_HOME=/software/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha export PATH=${SQOOP_HOME}/bin:$PATH |
保存退出并使之生效
1 | source /etc/profile |
7.4.3、修改sqoop-env.sh配置文件
1 2 3 4 5 | cp conf/sqoop-env-template.sh conf/sqoop-env.sh export HADOOP_COMMON_HOME=/software/hadoop/hadoop-3.1.1 export HADOOP_MAPRED_HOME=/software/hadoop/hadoop-3.1.1 export HIVE_HOME=/software/hive/apache-hive-3.1.0-bin |
7.4.4、修改sqoop-site.xml 配置文件
1 2 3 4 5 6 | vim conf/sqoop-site.xml <property> <name>sqoop.job.data.publish.class</name> <value>org.apache.atlas.sqoop.hook.SqoopHook</value> </property> |
7.4.5、hook-sqoop文件
复制 apache-atlas-sources-2.0.0/distro/target/apache-atlas-sqoop-hook-${project.version}/hook/sqoop全部内容到 apache-atlas-sources-2.0.0/distro/target/apache-atlas-2.0.0-server/apache-atlas-2.0.0/hook/sqoop
7.4.6、atlas-application.properties 复制文件到 Sqoop 的conf目录下
7.4.7、将/hook/sqoop/*.jar 复制到 Sqoop 的lib目录下
7.4.8、将数据库的驱动放到 Sqoop 的lib目录下
7.5、启动Atlas
1 | bin/atlas_start.py |

7.5、使用Sqoop将DB中的数据导入Atlas
1 | sqoop import-all-tables --connect 'jdbc:sqlserver://192.168.199.11:1433;username=sa;password=Qq104105;database=TestDB' --hive-import --create-hive-table -m 1 |
参考文献:
https://blog.csdn.net/coderblack/article/details/104283606/
https://www.jianshu.com/p/8dc3cb5266e3