写点什么

数据治理(六):编译 Atlas 安装包

作者:Lansonli
  • 2022 年 8 月 22 日
    广东
  • 本文字数:11454 字

    阅读完需:约 38 分钟

数据治理(六):编译Atlas安装包

编译 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 之外的框架,此教程使用的版本如下:



由于后期安装的 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 对应的元数据目录

[root@node3 bin]# zkCli.sh [zk: localhost:2181(CONNECTED) 5] rmr /hadoop-ha[zk: localhost:2181(CONNECTED) 6] rmr /yarn-leader-election
复制代码


2、删除各个节点上的 HDFS 安装包

# 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 外的目录

#此目录是安装Hadoop 时生成的配置目录,重装需要删除rm -rf /opt/data/hadooprm -rf /opt/data/journal
复制代码


4、删除各个节点上 HADOOP_HOME 环境变量

这里也可以不删除,后面重建后,直接修改,然后 Source 即可生效即可。


  • 安装 Hadoop3.1.4 版本步骤如下:


1)节点划分



2)下载 Hadoop3.1.4 版本


下载地址:Apache Hadoop



3)上传下载好的 Hadoop 安装包到 node1 节点上,并解压


[root@node1 software]# tar -zxvf ./hadoop-3.1.4.tar.gz
复制代码


4)在 node1 节点上配置 Hadoop 的环境变量


[root@node1 software]# vim /etc/profileexport 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 文件


#导入JAVA_HOMEexport JAVA_HOME=/usr/java/jdk1.8.0_181-amd64/
复制代码


6)配置 $HADOOP_HOME/etc/hadoop 下的 hdfs-site.xml 文件


<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


<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


<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


<configuration>    <property>        <name>mapreduce.framework.name</name>        <value>yarn</value>    </property></configuration>
复制代码


10)配置 $HADOOP_HOME/etc/hadoop/workers 文件


[root@node1 ~]# vim /software/hadoop-3.1.4/etc/hadoop/workersnode3node4node5
复制代码


11)配置 $HADOOP_HOME/sbin/start-dfs.sh 和 stop-dfs.sh 两个文件中顶部添加以下参数,防止启动错误


HDFS_DATANODE_USER=rootHDFS_DATANODE_SECURE_USER=hdfsHDFS_NAMENODE_USER=rootHDFS_JOURNALNODE_USER=rootHDFS_ZKFC_USER=root
复制代码


12)配置 $HADOOP_HOME/sbin/start-yarn.sh 和 stop-yarn.sh 两个文件顶部添加以下参数,防止启动错误


YARN_RESOURCEMANAGER_USER=rootYARN_NODEMANAGER_USER=root
复制代码


13)将配置好的 Hadoop 安装包发送到其他 4 个节点


[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


#分别在node2、node3、node4、node5节点上配置HADOOP_HOMEvim /etc/profileexport HADOOP_HOME=/software/hadoop-3.1.4/export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
#最后记得Sourcesource /etc/profile
复制代码


15)启动 HDFS 和 Yarn


#在node3,node4,node5节点上启动zookeeperzkServer.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)停止集群


#停止集群 [root@node1 ~]# stop-dfs.sh [root@node1 ~]# stop-yarn.sh注意:以上也可以使用 stop-all.sh 停止集群。
复制代码


四、安装 Hive3.1.2 版本

  • 安装 Hive 之前首先卸载旧版本的 Hive1.2.1,卸载步骤如下:


1)删除 node1、node3 节点上的 Hive 安装包


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


[root@node2 ~]# mysql -u root -p123456mysql> drop database hive;
复制代码


3)删除 node1、node3 节点上的 hive 环境变量


这里也可以不删除,后面直接修改即可。


安装 Hive3.1.2 版本步骤如下:


1)节点划分



2)下载 Hive3.1.2 版本


下载地址:Index of /apache/hive/hive-3.1.2



3)将下载好的 Hive 安装包上传到 node1 节点上,并修改名称


[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 节点上


[root@node1 ~]# scp -r /software/hive-3.1.2/ node3:/software/
复制代码


5)配置 node1、node3 两台节点的 Hive 环境变量


vim /etc/profileexport 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 并配置


<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&amp;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 并配置


<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 下的包替换


#删除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


#初始化hive,hive2.x版本后都需要初始化[root@node1 ~]# schematool -dbType mysql -initSchema
复制代码


11)在服务端和客户端操作 Hive


#在node1中登录Hive ,创建表test[root@node1 conf]# hivehive> 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]# hivehive> select * from test;OK1 zs 18
复制代码


五、安装 HBase2.2.6 版本

由于后期安装的 Atlas 版本是 2.1.0,需要的 HBase 版本至少是 HBase2 版本之上,所以这里安装 HBase2.2.6,HBase2.x 版本支持的 Hadoop 版本为 2.7.1+以上。


  • 首先卸载旧版本 HBase ,卸载步骤如下:


1)删除 HBase 在 Zookeeper 中的元数据


[root@node5 software]# zkCli.sh[zk: localhost:2181(CONNECTED) 1] rmr /hbase
复制代码


2)在 node3、node4、node5 节点上删除 HBase 安装包


[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 集群节点



#将下载好的HBase安装包上传至node4节点/software下,并解压[root@node4 software]# tar -zxvf ./hbase-2.2.6-bin.tar.gz
复制代码


当前节点配置 HBase 环境变量


#配置HBase环境变量[root@node4 software]# vim /etc/profileexport 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


#配置HBase JDKexport JAVA_HOME=/usr/java/jdk1.8.0_181-amd64/
#配置 HBase不使用自带的zookeeperexport HBASE_MANAGES_ZK=false
复制代码


4)配置 $HBASE_HOME/conf/hbase-site.xml


<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 节点


node3node4node5
复制代码


6)配置 backup-masters 文件


手动创建 $HBASE_HOME/conf/backup-masters 文件,指定备用的 HMaster,需要手动创建文件,这里写入 node5,在 HBase 任意节点都可以启动 HMaster,都可以成为备用 Master ,可以使用命令:hbase-daemon.sh start master 启动。


#创建 $HBASE_HOME/conf/backup-masters 文件,写入node5[root@node4 conf]# vim backup-mastersnode5
复制代码


7)复制 hdfs-site.xml 到 $HBASE_HOME/conf/下


[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 环境变量


[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 集群


#注意:一定要重启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 采用分布式方式安装,节点划分如下:



2)将下载好的 Solr 安装包上传至 node3 节点,并解压


[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。


ZK_HOST="node3:2181,node4:2181,node5:2181"SOLR_HOST="node3"
复制代码


4)将 Solr 安装包分发到 node4,node5 节点上


#分发到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


[root@node3 ~]# zkServer.sh start[root@node4 ~]# zkServer.sh start[root@node5 ~]# zkServer.sh start
复制代码


6)在每台节点启动 Solr


#进入每台节点$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 节点,并解压


[root@node3 software]# tar -zxvf ./apache-maven-3.6.3-bin.tar.gz
复制代码


2)配置 Maven 环境变量


#打开 /etc/profile在最后追加以下内容[root@node3 software]# vim /etc/profileexport MAVEN_HOME=/software/apache-maven-3.6.3/export PATH=$PATH:$MAVEN_HOME/bin
#配置环境变量生效[root@node3 software]# source /etc/profile
复制代码


3)检查是否安装 Maven 成功


[root@node3 software]# mvn -vApache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)Maven home: /software/apache-maven-3.6.3Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_181-amd64/jreDefault locale: en_US, platform encoding: UTF-8OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
复制代码


4)修改默认下载源为阿里镜像源


为了编译源码下载包更快,可以修改 $MAVEN_HOME/conf/settings.xml 文件,添加阿里镜像源,注意:将以下内容放在“...”之间。此外,maven 下载包默认对应的仓库位置在{user.home}”为当前用户家目录。


<!-- 添加阿里云镜像--><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 节点上,并解压


[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 行,将各大数据组件对应的版本改成与自己集群中对应的版本。


<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 行。


<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 源码


#进入/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 下载的仓库打包保存,方便后期再次编译


[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”目录下,在环境变量中加入:


export SASS_BINARY_PATH=/software/linux-x64-72_binding.node
复制代码


附件如下:



source 生效后,重新执行编译命令,当编译完成后,需要手动删除此环境变量。


2)“npm install”卡住,不继续进行



这种情况是 npm(和 vue 前端相关管理工具)安装不上,按照以下命令,可以预先安装上 npm,安装完成后,一定重新打开 xshell 页面,进入对应路径继续编译。


[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 包的附件如下:



发布于: 刚刚阅读数: 5
用户头像

Lansonli

关注

微信公众号:三帮大数据 2022.07.12 加入

CSDN大数据领域博客专家,华为云享专家、阿里云专家博主、腾云先锋(TDP)核心成员、51CTO专家博主,全网六万多粉丝,知名互联网公司大数据高级开发工程师

评论

发布
暂无评论
数据治理(六):编译Atlas安装包_数据治理_Lansonli_InfoQ写作社区