Apache Atlas 2.0 安装部署详解 Atlas自带Hbase/Solr部署 && 独立部署

Apache Atlas 2.0 安装部署详解

背景

公司在做一个数据治理的售前,选型为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版本的源码
点击source进行源码下载
将源码 apache-atlas-2.0.0-sources.tar.gz 上传至对应的Linux服务器,并解压

tar -zxf apache-atlas-2.0.0-sources.tar.gz

配置 Maven 镜像仓库

vi $MAVEN_HOME/conf/settings.xml

在<mirrors></mirrors>标签中填加如下配置信息,并保存退出

    <!-- 中央仓库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 的根目录下
进入Atlas根目录
执行Maven编译打包

export MAVEN_OPTS="-Xms2g -Xmx2g"
mvn clean -DskipTests package -Pdist,embedded-hbase-solr

在编译过程中可能会发生编译中断的情况,请使用 mvn 命令进行多次编译,直至编译成功
编译成功

使用此方式编译部署后,Hbase 和 Solr 服务将与Apache Atlas服务器一起启动 / 停止

此种方式仅用于单节点开发,不用于生产

2、Atlas 启动

Atlas编译成功后,会将编译好的文件放置在如下目录中

$Atlas_Source_Home/distro/target

编译后的文件

tar -xzvf apache-atlas-{project.version}-server.tar.gz
cd atlas-{project.version}

启动 Atlas

export MANAGE_LOCAL_HBASE=true  (设置使用内嵌的zk和hbase)
export MANAGE_LOCAL_SOLR=true  (设置使用内嵌的solr)

bin/atlas_start.py

启动完成后,可以使用如下命令验证

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 的日志

cat logs/application.log 

在 Web 访问 Atlas

访问 Atlas

使用如下命令停止 Atlas

bin/atlas_stop.py

另外官网说可以使用

bin/quick_start.py

导入简单示例,但是我在本地报错,原因暂未找到

Atlas独立部署

1、Atlas独立编译

修改atlas源码工程的pom.xml,将hbase zookeeper hive等依赖的版本修改成自己环境中一致的版本

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 目录下,执行如下编译语句

mvn clean -DskipTests install

tar -xzvf apache-atlas-{project.version}-server.tar.gz
cd atlas-{project.version}	

2、Kafka,Zookeeper安装

如果安装了docker,可以直接使用docker进行部署,使用镜像如下:

	wurstmeister/kafka:2.11-2.0.0 
	zookeeper:3.4.14 

3、Hadoop安装

下载:hadoop-3.1.1.tar.gz

3.1、解压

tar -zxvf hadoop-3.1.1.tar.gz

mkdir -p data/hadoop_repo

cd hadoop-3.1.1/

3.2 、查看本机hostname

查看hostname

3.3、修改 hadoop-env.sh 配置文件

vim etc/hadoop/hadoop-env.sh 

export JAVA_HOME=/software/jdk/jdk1.8.0_251

3.4、修改 core-site.xml 配置文件

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 配置文件

vim etc/hadoop/hdfs-site.xml

<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

3.6、复制 mapred-site.xml 文件并修改

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 配置文件

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 文件,在文件开头添加如下信息

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 文件,在文件开头添加如下信息

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 存在

bin/hdfs namenode -format

3.11、配置系统环境变量

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

保存退出并使之生效

source /etc/profile

3.12、设置免密登陆

ssh localhost

如果需要输入密码,则需要设置免密登陆

ssh-keygen -t rsa

三次回车

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3.13、启动Hadoop

sbin/start-all.sh

访问:http://192.168.199.11:8088
Hadoop界面

4、Hive安装

下载:apache-hive-3.1.0-bin.tar.gz

4.1、解压

tar -zxvf apache-hive-3.1.0-bin.tar.gz

cd apache-hive-3.1.0-bin/

4.2、配置系统环境变量

vim /etc/profile

#Hive
export HIVE_HOME=/software/hive/apache-hive-3.1.0-bin
export PATH=$HIVE_HOME/bin:$PATH

保存退出并使之生效

source /etc/profile

4.3、修改 hive-site.xml 配置文件

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驱动放到如下目录

$Hive_Home/lib

4.5、Mysql创建hive库

4.6、初始化hive库

cd bin/
schematool -dbType mysql -initSchema

4.7、执行hive命令并测试

执行hive命令并测试

5、Hbase安装

下载:hbase-2.2.2-bin.tar.gz

5.1、解压

tar -zxvf hbase-2.2.2-bin.tar.gz

cd hbase-2.2.2/

5.2、配置系统环境变量

vim /etc/profile

#Hbase
HBASE_HOME=/software/hbase/hbase-2.2.2
export PATH=${HBASE_HOME}/bin:${PATH}

保存退出并使之生效

source /etc/profile

5.3、修改 hbase-env.sh 配置文件

vim conf/hbase-env.sh 

export JAVA_HOME=/software/jdk/jdk1.8.0_251

5.4、修改 hbase-site.xml 配置文件

	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

bin/start-hbase.sh

查看Hbase的两个服务是否全部启动
Hbase服务
如果两个服务有未启动成功的,请查看具体日志

cat logs/hbase-root-master-node1.log 

6、Solr安装

下载:solr-7.7.2.tgz

6.1、解压

tar -zxvf solr-7.7.2.tgz

cd solr-7.7.2/

6.2、配置并启动Solr

mkdir apache-atlas-conf

将$Atlas_Home下的solr conf复制到 $Solr_Home/apache-atlas-conf 目录下

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/

启动服务

./bin/solr start -c -z <zookeeper_host:port>  -p 8983

创建 collection

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 配置文件

vim conf/atlas-env.sh

export HBASE_CONF_DIR=/software/hbase/hbase-2.2.2/conf

7.2、修改 atlas-application.properties 配置文件

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
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
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批量导入工具
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、解压
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、配置系统环境变量
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

保存退出并使之生效

source /etc/profile
7.4.3、修改sqoop-env.sh配置文件
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 配置文件
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

	bin/atlas_start.py 

Atlas启动

7.5、使用Sqoop将DB中的数据导入Atlas

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

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值