编译Atlas安装包
一、Atlas2.1.0源码下载
Atlas官网没有提供Atlas的安装包,需要下载Atlas的源码后编译安装,下载Atlas源码需要登录Atlas官网下载Atlas:https://atlas.apache.org/#/Downloads,选择2.1.0版本:
二、Atlas与其他框架依赖
Atlas内部架构使用到了kafka来做元数据注入和消费,使用到了janus gragh图数据做数据读写,这个图数据库内部又使用了HBase和Solr做数据存储和搜索。Kafka和HBase又需要使用zookeeper。HBase又依赖于HDFS。以上这些所有框架在安装Atlas时可以使用Atlas集成自带的,也可以使用外部安装好的,一般企业开发中,都会选择让Atlas使用外部安装好的这些框架,所以打包时需要选择不使用内嵌框架方式。
Atlas依赖的框架有如下:Zookeeper、HDFS、Hive、HBase、Kafka、Solr,默认集群中已经安装好了除Solr之外的框架,此教程使用的版本如下:
服务名称 | 使用版本 |
---|---|
Zookeeper | 3.4.13 |
Hadoop | 3.1.4 |
Hive | 3.1.2(最低要求3.1.0) |
HBase | 2.2.6 (最低要求2版本之上) |
Kafka | 0.11.0.3 |
Solr | 5.5.1(官网要求Atlas2.1.0对应版本) |
由于后期安装的Atlas版本是2.1.0 最新版,Atlas需要监控Hive中的元数据,Atlas2.1.0版本支持的Hive版本最低为3.1.0,HBase版本最低是HBase2版本之上,Hive3.0 版本之上与Hadoop3.x 版本以上兼容,HBase2版本与Hadoop版本兼容关系如下图示,所以这里综合考虑选择Hadoop3.1.4版本,Hive选择3.1.2版本,HBase选择2.2.6版本。
三、安装Hadoop3.1.4版本
- 安装Hadoop3.1.4版本之前首先卸载旧的Hadoop版本,卸载步骤如下:
1、停止HDFS集群,在Zookeeper中删除HDFS对应的元数据目录
代码语言:javascript复制[root@node3 bin]# zkCli.sh
[zk: localhost:2181(CONNECTED) 5] rmr /hadoop-ha
[zk: localhost:2181(CONNECTED) 6] rmr /yarn-leader-election
2、删除各个节点上的HDFS安装包
代码语言:javascript复制# node1节点
[root@node1 bin]# cd /software/
[root@node1 software]# rm -rf ./hadoop-2.9.2/
#node2节点
[root@node2 bin]# cd /software/
[root@node2 software]# rm -rf ./hadoop-2.9.2/
#node3节点
[root@node3 bin]# cd /software/
[root@node3 software]# rm -rf ./hadoop-2.9.2/
#node4节点
[root@node4 bin]# cd /software/
[root@node4 software]# rm -rf ./hadoop-2.9.2/
#node5节点
[root@node5 bin]# cd /software/
[root@node6 software]# rm -rf ./hadoop-2.9.2/
3、删除5个节点上的/opt/data/目录下除了zookeeper外的目录
代码语言:javascript复制#此目录是安装Hadoop 时生成的配置目录,重装需要删除
rm -rf /opt/data/hadoop
rm -rf /opt/data/journal
4、删除各个节点上HADOOP_HOME 环境变量
这里也可以不删除,后面重建后,直接修改,然后Source即可生效即可。
- 安装Hadoop3.1.4版本步骤如下:
1)节点划分
节点IP | 节点名称 | NN | DN | ZK | ZKFC | JN | RM | NM |
---|---|---|---|---|---|---|---|---|
192.168.179.4 | node1 | ★ | ★ | ★ | ||||
192.168.179.5 | node2 | ★ | ★ | ★ | ||||
192.168.179.6 | node3 | ★ | ★ | ★ | ★ | |||
192.168.179.7 | node4 | ★ | ★ | ★ | ★ | |||
192.168.179.8 | node5 | ★ | ★ | ★ | ★ |
2)下载Hadoop3.1.4版本
下载地址:Apache Hadoop
3)上传下载好的Hadoop安装包到node1节点上,并解压
代码语言:javascript复制[root@node1 software]# tar -zxvf ./hadoop-3.1.4.tar.gz
4)在node1节点上配置Hadoop的环境变量
代码语言:javascript复制[root@node1 software]# vim /etc/profile
export HADOOP_HOME=/software/hadoop-3.1.4/
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
#使配置生效
source /etc/profile
5)配置$HADOOP_HOME/etc/hadoop下的hadoop-env.sh文件
代码语言:javascript复制#导入JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64/
6)配置$HADOOP_HOME/etc/hadoop下的hdfs-site.xml文件
代码语言:javascript复制<configuration>
<property>
<!--这里配置逻辑名称,可以随意写 -->
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<!-- 禁用权限 -->
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<!-- 配置namenode 的名称,多个用逗号分割 -->
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<property>
<!-- dfs.namenode.rpc-address.[nameservice ID].[name node ID] namenode 所在服务器名称和RPC监听端口号 -->
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>node1:8020</value>
</property>
<property>
<!-- dfs.namenode.rpc-address.[nameservice ID].[name node ID] namenode 所在服务器名称和RPC监听端口号 -->
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>node2:8020</value>
</property>
<property>
<!-- dfs.namenode.http-address.[nameservice ID].[name node ID] namenode 监听的HTTP协议端口 -->
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>node1:50070</value>
</property>
<property>
<!-- dfs.namenode.http-address.[nameservice ID].[name node ID] namenode 监听的HTTP协议端口 -->
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>node2:50070</value>
</property>
<property>
<!-- namenode 共享的编辑目录, journalnode 所在服务器名称和监听的端口 -->
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node3:8485;node4:8485;node5:8485/mycluster</value>
</property>
<property>
<!-- namenode高可用代理类 -->
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<!-- 使用ssh 免密码自动登录 -->
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<property>
<!-- journalnode 存储数据的地方 -->
<name>dfs.journalnode.edits.dir</name>
<value>/opt/data/journal/node/local/data</value>
</property>
<property>
<!-- 配置namenode自动切换 -->
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
</configuration>
7)配置$HADOOP_HOME/ect/hadoop/core-site.xml
代码语言:javascript复制<configuration>
<property>
<!-- 为Hadoop 客户端配置默认的高可用路径 -->
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<property>
<!-- Hadoop 数据存放的路径,namenode,datanode 数据存放路径都依赖本路径,不要使用 file:/ 开头,使用绝对路径即可
namenode 默认存放路径 :file://${hadoop.tmp.dir}/dfs/name
datanode 默认存放路径 :file://${hadoop.tmp.dir}/dfs/data
-->
<name>hadoop.tmp.dir</name>
<value>/opt/data/hadoop/</value>
</property>
<property>
<!-- 指定zookeeper所在的节点 -->
<name>ha.zookeeper.quorum</name>
<value>node3:2181,node4:2181,node5:2181</value>
</property>
</configuration>
8)配置$HADOOP_HOME/etc/hadoop/yarn-site.xml
代码语言:javascript复制<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>
<property>
<!-- 配置yarn为高可用 -->
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<!-- 集群的唯一标识 -->
<name>yarn.resourcemanager.cluster-id</name>
<value>mycluster</value>
</property>
<property>
<!-- ResourceManager ID -->
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<!-- 指定ResourceManager 所在的节点 -->
<name>yarn.resourcemanager.hostname.rm1</name>
<value>node1</value>
</property>
<property>
<!-- 指定ResourceManager 所在的节点 -->
<name>yarn.resourcemanager.hostname.rm2</name>
<value>node2</value>
</property>
<property>
<!-- 指定ResourceManager Http监听的节点 -->
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>node1:8088</value>
</property>
<property>
<!-- 指定ResourceManager Http监听的节点 -->
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>node2:8088</value>
</property>
<property>
<!-- 指定zookeeper所在的节点 -->
<name>yarn.resourcemanager.zk-address</name>
<value>node3:2181,node4:2181,node5:2181</value>
</property>
<property>
<!-- 关闭虚拟内存检查 -->
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!-- 启用节点的内容和CPU自动检测,最小内存为1G -->
<!--<property>
<name>yarn.nodemanager.resource.detect-hardware-capabilities</name>
<value>true</value>
</property>-->
</configuration>
9)配置$HADOOP_HOME/etc/hadoop/mapred-site.xml
代码语言:javascript复制<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
10)配置$HADOOP_HOME/etc/hadoop/workers文件
代码语言:javascript复制[root@node1 ~]# vim /software/hadoop-3.1.4/etc/hadoop/workers
node3
node4
node5
11)配置$HADOOP_HOME/sbin/start-dfs.sh 和stop-dfs.sh两个文件中顶部添加以下参数,防止启动错误
代码语言:javascript复制HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_JOURNALNODE_USER=root
HDFS_ZKFC_USER=root
12)配置$HADOOP_HOME/sbin/start-yarn.sh和stop-yarn.sh两个文件顶部添加以下参数,防止启动错误
代码语言:javascript复制YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root
13)将配置好的Hadoop安装包发送到其他4个节点
代码语言:javascript复制[root@node1 ~]# scp -r /software/hadoop-3.1.4 node2:/software/
[root@node1 ~]# scp -r /software/hadoop-3.1.4 node3:/software/
[root@node1 ~]# scp -r /software/hadoop-3.1.4 node4:/software/
[root@node1 ~]# scp -r /software/hadoop-3.1.4 node5:/software/
14)在node2、node3、node4、node5节点上配置HADOOP_HOME
代码语言:javascript复制#分别在node2、node3、node4、node5节点上配置HADOOP_HOME
vim /etc/profile
export HADOOP_HOME=/software/hadoop-3.1.4/
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
#最后记得Source
source /etc/profile
15)启动HDFS和Yarn
代码语言:javascript复制#在node3,node4,node5节点上启动zookeeper
zkServer.sh start
#在node1上格式化zookeeper
[root@node1 ~]# hdfs zkfc -formatZK
#在每台journalnode中启动所有的journalnode,这里就是node3,node4,node5节点上启动
hdfs --daemon start journalnode
#在node1中格式化namenode
[root@node1 ~]# hdfs namenode -format
#在node1中启动namenode,以便同步其他namenode
[root@node1 ~]# hdfs --daemon start namenode
#高可用模式配置namenode,使用下列命令来同步namenode(在需要同步的namenode中执行,这里就是在node2上执行):
[root@node2 software]# hdfs namenode -bootstrapStandby
#node1上启动HDFS,启动Yarn
[root@node1 sbin]# start-dfs.sh
[root@node1 sbin]# start-yarn.sh
注意以上也可以使用start-all.sh命令启动Hadoop集群。
16)访问WebUI
访问HDFS : http://node1:50070
访问Yarn WebUI :http://node1:8088
17)停止集群
代码语言:javascript复制#停止集群
[root@node1 ~]# stop-dfs.sh
[root@node1 ~]# stop-yarn.sh
注意:以上也可以使用 stop-all.sh 停止集群。
四、安装Hive3.1.2版本
- 安装Hive之前首先卸载旧版本的Hive1.2.1,卸载步骤如下:
1)删除node1、node3节点上的Hive安装包
代码语言:javascript复制#在node1节点删除Hive安装包
[root@node1 ~]# cd /software/
[root@node1 software]# rm -rf ./hive-1.2.1/
#在node3节点删除Hive安装包
[root@node3 ~]# cd /software/
[root@node3 software]# rm -rf ./hive-1.2.1/
2)登录mysql ,删除Hive元数据库hive
代码语言:javascript复制[root@node2 ~]# mysql -u root -p123456
mysql> drop database hive;
3)删除node1、node3节点上的hive 环境变量
这里也可以不删除,后面直接修改即可。
安装Hive3.1.2版本步骤如下:
1)节点划分
节点IP | 节点名称 | Hive服务器 | Hive客户端 | MySQL |
---|---|---|---|---|
192.168.179.4 | node1 | ★ | ||
192.168.179.5 | node2 | ★ | ||
192.168.179.6 | node3 | ★ |
2)下载Hive3.1.2版本
下载地址:Index of /apache/hive/hive-3.1.2
3)将下载好的Hive安装包上传到node1节点上,并修改名称
代码语言:javascript复制[root@node1 ~]# cd /software/
[root@node1 software]# tar -zxvf ./apache-hive-3.1.2-bin.tar.gz
[root@node1 software]# mv apache-hive-3.1.2-bin hive-3.1.2
4)将解压好的Hive安装包发送到node3节点上
代码语言:javascript复制[root@node1 ~]# scp -r /software/hive-3.1.2/ node3:/software/
5)配置node1、node3两台节点的Hive环境变量
代码语言:javascript复制vim /etc/profile
export HIVE_HOME=/software/hive-3.1.2/
export PATH=$PATH:$HIVE_HOME/bin
#source 生效
source /etc/profile
6)在node1节点$HIVE_HOME/conf下创建hive-site.xml并配置
代码语言:javascript复制<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node2:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
</configuration>
7)在node3节点$HIVE_HOME/conf/中创建hive-site.xml并配置
代码语言:javascript复制<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://node1:9083</value>
</property>
</configuration>
8)node1、node3节点删除$HIVE_HOME/lib下“guava”包,使用Hadoop下的包替换
代码语言:javascript复制#删除Hive lib目录下“guava-19.0.jar ”包
[root@node1 ~]# rm -rf /software/hive-3.1.2/lib/guava-19.0.jar
[root@node3 ~]# rm -rf /software/hive-3.1.2/lib/guava-19.0.jar
#将Hadoop lib下的“guava”包拷贝到Hive lib目录下
[root@node1 ~]# cp /software/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar /software/hive-3.1.2/lib/
[root@node3 ~]# cp /software/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar /software/hive-3.1.2/lib/
9)将“mysql-connector-java-5.1.47.jar”驱动包上传到node1节点的$HIVE_HOME/lib目录下
上传后,需要将mysql驱动包传入$HIVE_HOME/lib/目录下,这里node1,node3节点都需要传入。
10)在node1节点中初始化Hive
代码语言:javascript复制#初始化hive,hive2.x版本后都需要初始化
[root@node1 ~]# schematool -dbType mysql -initSchema
11)在服务端和客户端操作Hive
代码语言:javascript复制#在node1中登录Hive ,创建表test
[root@node1 conf]# hive
hive> create table test (id int,name string,age int ) row format delimited fields terminated by 't';
#向表test中插入数据
hive> insert into test values(1,"zs",18);
#在node1启动Hive metastore
[root@node1 hadoop]# hive --service metastore &
#在node3上登录Hive客户端查看表数据
[root@node3 lib]# hive
hive> select * from test;
OK
1 zs 18
五、安装HBase2.2.6版本
由于后期安装的Atlas版本是2.1.0,需要的HBase版本至少是HBase2版本之上,所以这里安装HBase2.2.6,HBase2.x版本支持的Hadoop版本为2.7.1 以上。
- 首先卸载旧版本HBase ,卸载步骤如下:
1)删除HBase在Zookeeper中的元数据
代码语言:javascript复制[root@node5 software]# zkCli.sh
[zk: localhost:2181(CONNECTED) 1] rmr /hbase
2)在node3、node4、node5节点上删除HBase安装包
代码语言:javascript复制[root@node3 ~]# cd /software/
[root@node3 software]# rm -rf ./hbase-1.2.9/
[root@node4 ~]# cd /software/
[root@node4 software]# rm -rf ./hbase-1.2.9/
[root@node5 ~]# cd /software/
[root@node6 software]# rm -rf ./hbase-1.2.9/
3)删除node3、node4、node5节点上的HBase环境变量
这里也可以不删除,后面直接修改即可。
- 重新安装HBase步骤如下:
1)下载HBase 2.2.6
下载地址:https://archive.apache.org/dist/hbase/2.2.6/
2)规划HBase集群节点
节点IP | 节点名称 | HBase服务 |
---|---|---|
192.168.179.6 | node3 | RegionServer |
192.168.179.7 | node4 | HMaster,RegionServer |
192.168.179.8 | node5 | RegionServer |
#将下载好的HBase安装包上传至node4节点/software下,并解压
[root@node4 software]# tar -zxvf ./hbase-2.2.6-bin.tar.gz
当前节点配置HBase环境变量
代码语言:javascript复制#配置HBase环境变量
[root@node4 software]# vim /etc/profile
export HBASE_HOME=/software/hbase-2.2.6/
export PATH=$PATH:$HBASE_HOME/bin
#使环境变量生效
[root@node4 software]# source /etc/profile
3)配置$HBASE_HOME/conf/hbase-env.sh
代码语言:javascript复制#配置HBase JDK
export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64/
#配置 HBase不使用自带的zookeeper
export HBASE_MANAGES_ZK=false
4)配置$HBASE_HOME/conf/hbase-site.xml
代码语言:javascript复制<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://mycluster/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node3,node4,node5</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
5)配置$HBASE_HOME/conf/regionservers,配置RegionServer节点
代码语言:javascript复制node3
node4
node5
6)配置backup-masters文件
手动创建$HBASE_HOME/conf/backup-masters文件,指定备用的HMaster,需要手动创建文件,这里写入node5,在HBase任意节点都可以启动HMaster,都可以成为备用Master ,可以使用命令:hbase-daemon.sh start master启动。
代码语言:javascript复制#创建 $HBASE_HOME/conf/backup-masters 文件,写入node5
[root@node4 conf]# vim backup-masters
node5
7)复制hdfs-site.xml到$HBASE_HOME/conf/下
代码语言:javascript复制[root@node4 conf]# scp /software/hadoop-3.1.4/etc/hadoop/hdfs-site.xml /software/hbase-2.2.6/conf/
8)将HBase安装包发送到node3,node5节点上,并在node3,node5节点上配置HBase环境变量
代码语言:javascript复制[root@node4 software]# cd /software
[root@node4 software]# scp -r ./hbase-2.6.2 node3:/software/
[root@node4 software]# scp -r ./hbase-2.6.2 node5:/software/
注意:在node3、node5上配置HBase环境变量。
9)重启Zookeeper、重启HDFS及启动HBase集群
代码语言:javascript复制#注意:一定要重启Zookeeper,重启HDFS,在node4节点上启动HBase集群[root@node4 software]# start-hbase.sh
#访问WebUI,http://node4:16010。停止集群:在任意一台节点上stop-hbase.sh
六、安装Solr 5.5.1
Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
Solr可以独立运行,它可运行在Jetty(Solr内置的小服务器,类似于一个小型Tomcat服务器)、Tomcat等这些Servlet容器中。Solr索引的实现方法很简单,用POST方法向Solr服务器发送一个描述Field及其内容的XML文档,Solr根据XML文档添加、删除、更新索引。Solr搜索只需要发送HTTP GET请求,然后对Solr返回XML、JSON等格式的查询结果进行解析,组织页面布局。另外,Solr不提供构建UI的功能,它只提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
Solr下载地址:http://archive.apache.org/dist/lucene/solr/5.5.1/solr-5.5.1.tgz
- 下载完成后,按照下面步骤进行Solr安装:
1)划分节点
这里搭建Solr采用分布式方式安装,节点划分如下:
节点IP | 节点名称 | Solr服务 |
---|---|---|
192.168.179.6 | node3 | solr |
192.168.179.7 | node4 | solr |
192.168.179.8 | node5 | solr |
2)将下载好的Solr安装包上传至node3节点,并解压
代码语言:javascript复制[root@node3 software]# tar -zxvf ./solr-5.5.1.tgz
3)配置Solr bin目录下 solr.in.sh文件
编辑 $SOLR_HOME/bin/solr.in.sh文件,修改以下内容,也可追加写入,ZK_HOST:配置zookeeper集群,这里需要使用zookeeper来协调Solr集群节点。SOLR_HOST:指定当前SOLR节点Host。
代码语言:javascript复制ZK_HOST="node3:2181,node4:2181,node5:2181"
SOLR_HOST="node3"
4)将Solr安装包分发到node4,node5节点上
代码语言:javascript复制#分发到node4,node5节点
[root@node3 software]# scp -r ./solr-5.5.1 node4:/software/
[root@node3 software]# scp -r ./solr-5.5.1 node5:/software/
#分发完成之后,需要在node4,node5节点$SOLR_HOME/bin/solr.in.sh中修改对应的SOLR_HOST为对应节点。
SOLR_HOST="node4"
SOLR_HOST="node5"
5)每台节点启动zookeeper
代码语言:javascript复制[root@node3 ~]# zkServer.sh start
[root@node4 ~]# zkServer.sh start
[root@node5 ~]# zkServer.sh start
6)在每台节点启动Solr
代码语言:javascript复制#进入每台节点$SOLR_HOME/bin下,启动Solr
[root@node3 bin]# ./solr start
[root@node4 bin]# ./solr start
[root@node5 bin]# ./solr start
7)查看Solr WebUI
访问任意一台节点 http://node3:8983/ 查看WebUI
七、安装Maven 3.6.3
由于编译Atlas源码需要用到Maven进行编译,这里需要安装Maven,Maven只需要安装到一台节点即可,在安装Maven节点上后期进行编译Atlas源码包。Maven下载地址:http://maven.apache.org/download.cgi 这里下载Maven版本为:3.6.3,下载Maven完成后,按照以下步骤配置Maven。
1)上传Maven安装包到node3节点,并解压
代码语言:javascript复制[root@node3 software]# tar -zxvf ./apache-maven-3.6.3-bin.tar.gz
2)配置Maven环境变量
代码语言:javascript复制#打开 /etc/profile在最后追加以下内容
[root@node3 software]# vim /etc/profile
export MAVEN_HOME=/software/apache-maven-3.6.3/
export PATH=$PATH:$MAVEN_HOME/bin
#配置环境变量生效
[root@node3 software]# source /etc/profile
3)检查是否安装Maven成功
代码语言:javascript复制[root@node3 software]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /software/apache-maven-3.6.3
Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_181-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
4)修改默认下载镜像源
为了编译源码下载包更快,可以修改$MAVEN_HOME/conf/settings.xml文件,添加里镜像源,注意:将以下内容放在“<mirrors>...</mirrors>”之间。此外,maven下载包默认对应的仓库位置在${user.home}/.m2/repository 目录下,”${user.home}”为当前用户家目录。
代码语言:javascript复制<!-- 添加阿里云镜像-->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>UK</id>
<name>UK Central</name>
<url>http://uk.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
八、编译Atlas源码
- 编译Atlas源码步骤如下:
1)将下载好的Atlas安装包上传到node3节点上,并解压
代码语言:javascript复制[root@node3 software]# tar -zxvf ./apache-atlas-2.1.0-sources.tar.gz
2) 修改Atlas pom.xml文件
修改文件/software/apache-atlas-sources-2.1.0/pom.xml中663行,将各大数据组件对应的版本改成与自己集群中对应的版本。
代码语言:javascript复制<hadoop.version>3.1.4</hadoop.version>
<hbase.version>2.2.6</hbase.version>
<solr.version>5.5.1</solr.version>
<hive.version>3.1.2</hive.version>
<kafka.version>0.11.0.3</kafka.version>
<zookeeper.version>3.4.13</zookeeper.version>
3)修改Atlas源码中disto目录下pom.xml文件
由于在子工程distro中,HBase和solr的下载路径是外网,这里修改替换成清华大学下载网址,速度更快。需要修改“/software/apache-atlas-sources-2.1.0/distro”路径下pom.xml的大概254&258行。
代码语言:javascript复制<hbase.tar>http://mirrors.tuna.tsinghua.edu.cn/apache/hbase/${hbase.version}/hbase-${hbase.version}-bin.tar.gz</hbase.tar>
<solr.tar>http://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/${solr.version}/solr-${solr.version}.tgz</solr.tar>
4)编译Atlas源码
代码语言:javascript复制#进入/software/apache-atlas-sources-2.1.0目录
[root@node3 ~]# cd /software/apache-atlas-sources-2.1.0
#将编译器的初始堆内存调大,在把最大堆内存调大,因为文件比较大,用的内存比较多
[root@node3 apache-atlas-sources-2.1.0]# export MAVEN_OPTS="-Xms2g -Xmx2g"
#执行以下命令编译
[root@node3 apache-atlas-sources-2.1.0]# mvn clean -DskipTests package -Pdist
注意:如果想使用内置的hbase和solr可以执行以下命令进行编译,不过编译过程很痛苦: mvn clean -DskipTests package -Pdist,embedded-hbase-solr
历经千辛万苦,Atlas编译完成,此图为证:
注意:以上编译可能会由于网络波动在中途出现编译不通过问题,可以直接重新执行编译命令,同时结合编译错误解决。
5)查看编译好的安装包
进入目录“/software/apache-atlas-sources-2.1.0/distro/target”下,查看编译好的安装包及解压好的包。
6)编译完成之后,可以将maven下载的仓库打包保存,方便后期再次编译
代码语言:javascript复制[root@node3 ~]# cd ~
[root@node3 ~]# tar -czvf mvn_repo.tar.gz ./.m2/
九、编译错误解决
1)“Cannot dowload ....linux-x64-72_binging.node”
编译过程中遇到以上错误,原因是对应的网站不能访问,被墙掉了,可以根据给出的网址手动单独下载“linux-x64-72_binging.node”,下载完成后上传到“/software”目录下,在环境变量中加入:
代码语言:javascript复制export SASS_BINARY_PATH=/software/linux-x64-72_binding.node
附件如下:
source生效后,重新执行编译命令,当编译完成后,需要手动删除此环境变量。
2)“npm install”卡住,不继续进行
这种情况是npm(和vue前端相关管理工具)安装不上,按照以下命令,可以预先安装上npm,安装完成后,一定重新打开xshell页面,进入对应路径继续编译。
代码语言:javascript复制[root@node3 ~]# curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
[root@node3 ~]# yum install -y nodejs
[root@node3 ~]# npm install -g cnpm --registry=https://registry.npm.taobao.org
3)Maven下载“pentaho-aggdesigner-algorithm-5.1.5-jhyde”包卡住
这个包在镜像中不存在,只能由外网下载,这里下载太慢导致下载不下来,所以直接找个Maven仓库,找到对应的“pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar”上传到Maven仓库“/root/.m2/repository/org/pentaho/pentaho-aggdesigner-algorithm/5.1.5-jhyde”目录下即可。此jar包的附件如下: