Ambari2.7.7.0源码编译打包ambari-2.7.7.0-1-centos7_8-x86_64.tar.gz

概述(感恩前面有人分享,才有今天的分享^_^)

百度一下,足够信息了,先梳理,规划好再动手。。
技术这东西~了解不如理解;理解不如做到,做到不如做熟
几年前就了解了,一直没机会理解和动手,更谈不上做熟了。
天下武功唯快不破。
同样道理,掌握技术也要多练,从0到1,1到n。不断尝试失败,在失败中思考,加深理解与熟练度。
可惜IT技术不如传统武术可以百年不变或少改良即可,让你年年岁岁重复练习一门。
IT技术迭代更新超快,单人学习能力与速度是跟不上海量信息与迭代变迁的。这也是写这文的来由。
IT技术学习需要群体模式,你我他/她,互学互推,在彼此的基础或成果上快速迭代,能做乘法,不做加法。
我从用几天(失败:网络不通,下载耗时,构建试错)做到Ambari2.7.7.0源码成功编译打包,到0.5天能重做0到1。称这为“迭代1”
有了“迭代1”,大伙就可以少走弯路,快速上手“迭代1”。再迭代各自己迭代2、3。。。"
本文目的1:赋能有心人,0.5天内实现《Ambari2.7.7.0源码编译打包》
本文目的2:让《Ambari源码构建》成为小case
本文不足:并未实现产品级的打包验收验证。大师级别,包涵包涵,欢迎指点不足。

必看: https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.7.7
主要参照:https://blog.csdn.net/Keyuchen_01/article/details/130018884
主要参照:https://yuanzhengme.blog.csdn.net/article/details/130244929

云盘资料

链接:https://pan.baidu.com/s/1vOeq1ugsp1dJJiN6zq2pPA
提取码:8ks7
在这里插入图片描述

0,规划目录路径

路径说明
/opt实操根路径
/opt/apache-ambari-2.7.7-src源码路径
/opt/compile-ambari依赖包下载存放路径
/opt/bak备份依赖库存路径
/user/mavenmaven父路径
/usr/lib/nodenode父路径
/user/phantomjsphantomjs父路径
/opt/2.7.7.0-1/包路径
mkdir -p /opt/compile-ambari && mkdir -p /opt/bak

1,下载源码(三选一)

cd /opt
wget https://github.com/apache/ambari/releases/tag/release-2.7.7-rc0/ambari-release-2.7.7-rc0.tar.gz
wget https://www-eu.apache.org/dist/ambari/ambari-2.7.7/apache-ambari-2.7.7-src.tar.gz
(本例所用) wget https://mirrors.tuna.tsinghua.edu.cn/apache/ambari/ambari-
2.7.7/apache-ambari-2.7.7-src.tar.gz
tar -zxvf apache-ambari-2.7.7-src.tar.gz -C . && chown -R root:root apache-ambari-2.7.7-src

在这里插入图片描述

2,下载所需依赖

cd /opt/compile-ambari
依赖项版本操作
hbase2.4.2wget https://repo.huaweicloud.com/apache/hbase/2.4.2/hbase-2.4.2-bin.tar.gz
hadoop3.1.1wget https://repo.huaweicloud.com/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz
grafana6.7.4wget https://dl.grafana.com/oss/release/grafana-6.7.4.linux-amd64.tar.gz
phoenix5.1.2wget https://repo.huaweicloud.com/apache/phoenix/phoenix-5.1.2/phoenix-hbase-2.4-5.1.2-bin.tar.gz
solr7.7.3wget http://archive.apache.org/dist/lucene/solr/7.7.3/solr-7.7.3.tgz
lucene6.6.2wget https://repo1.maven.org/maven2/org/apache/lucene/lucene-core/6.6.2/lucene-core-6.6.2.jar
wget https://repo1.maven.org/maven2/org/apache/lucene/lucene-backward-codecs/6.6.2/lucene-backward-codecs-6.6.2.jar
yarn0.23.2wget https://github.com/yarnpkg/yarn/releases/download/v0.23.2/yarn-v0.23.2.tar.gz
yarn1.1.0wget https://github.com/yarnpkg/yarn/releases/download/v1.1.0/yarn-v1.1.0.tar.gz

在这里插入图片描述

3,准备编译环境(CentOS 7.9.2009)

3.1 安装软件

软件版本操作
java1.8.0_202已存在
maven3.8.8mkdir -p /usr/maven/ && cd /usr/maven
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz --no-check-certificate
tar -zxvf apache-maven-3.8.8-bin.tar.gz -C .
rpm-build4.11.3yum install rpm-build -y
gcc-c++4.8.5yum install gcc-c++ -y
python2.7.5自带
python-devel2.7.5yum install python-devel -y
git1.8.3yum install git -y
node.js4.5.0mkdir -p /usr/lib/node && cd /usr/lib/node
wget https://nodejs.org/dist/v4.5.0/node-v4.5.0-linux-x64.tar.gz
tar -zxvf node-v4.5.0-linux-x64.tar.gz -C .
bzip21.0.6yum install bzip2 -y
phantomjs2.1.1mkdir -p /usr/phantomjs/ && cd /usr/phantomjs
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
bzip2 -d phantomjs-2.1.1-linux-x86_64.tar.bz2 && tar -xvf phantomjs-2.1.1-linux-x86_64.tar -C .

3.2 设置环境变量

vim /etc/profile.d/my_env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_202-amd64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export MAVEN_HOME=/usr/maven/apache-maven-3.8.8
export NODE_HOME=/usr/lib/node/node-v4.5.0-linux-x64
export PATH=.:$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$NODE_HOME/bin:/usr/phantomjs/phantomjs-2.1.1-linux-x86_64/bin

source /etc/profile.d/my_env.sh

3.3 设置npm国内镜像

npm config set registry https://registry.npm.taobao.org

3.4 设置maven国内镜像

cd /usr/maven/apache-maven-3.8.8/

云盘上的repository.tar.gz上传到这里,并解压
yarn-v0.23.2.tar.gz,yarn-v1.1.0.tar.gz已包括在repository.tar.gz了

tar -zxvf repository.tar.gz -C .
mkdir -p $MAVEN_HOME/repository/com/github/eirslett/yarn/0.23.2/yarn-0.23.2.
mkdir -p $MAVEN_HOME/repository/com/github/eirslett/yarn/1.1.0
cp /opt/compile-ambari/yarn-v0.23.2.tar.gz $MAVEN_HOME/repository/com/github/eirslett/yarn/0.23.2/yarn-0.23.2.
cp /opt/compile-ambari/yarn-v1.1.0.tar.gz $MAVEN_HOME/repository/com/github/eirslett/yarn/1.1.0/yarn-1.1.0.tar.gz

云盘上有settings.xml,可以直接复用

vim conf/settings.xml  

..
<localRepository>/usr/maven/apache-maven-3.8.8/repository</localRepository>
<profiles>..
<activeProfiles>..
..

3.5 全局安装bower, gulp

npm install -g bower
npm install -g gulp

4,预处理

4.1 添加stacks: HDP3.x

云盘上有HDP3.0/1,可以直接复用
在这里插入图片描述

4.2 vim .bowerrc

cd /opt/apache-ambari-2.7.7-src/ambari-admin/src/main/resources/ui/admin-web
vim .bowerrc

{
“directory”: “app/bower_components”,
“allow_root”: true,
“strict-ssl”: false,
“https-proxy”: “”

}
网上资料说只添加allow_root。依然有证书过期问题。可能以前没有过期,现在报证书过期。才加上strict-ssl,https-proxy。

4.3 修改 ambari-metrics/pom.xml 文件

可http服务也可本地文件。(本例用本地)

vim /opt/apache-ambari-2.7.7-src/ambari-metrics/pom.xml  

(本例通过xftp下载编辑再上传,方更记录变更)

<hbase.tar>file:///opt/compile-ambari/hbase-2.4.2-bin.tar.gz</hbase.tar>
<hbase.folder>hbase-2.4.2</hbase.folder>
<hadoop.tar>file:///opt/compile-ambari/hadoop-3.1.1.tar.gz</hadoop.tar>
<hadoop.folder>hadoop-3.1.1</hadoop.folder>
<grafana.folder>grafana-6.7.4</grafana.folder>
<grafana.tar>file:///opt/compile-ambari/grafana-6.7.4.linux-amd64.tar.gz</grafana.tar>
<phoenix.tar>file:///opt/compile-ambari/phoenix-hbase-2.4-5.1.2-bin.tar.gz</phoenix.tar>

<phoenix.folder>phoenix-hbase-2.4-5.1.2</phoenix.folder>
如图:
在这里插入图片描述

4.4 修改 ambari-infra/ambari-infra-assembly/pom.xml 文件

vim /opt/apache-ambari-2.7.7-src/ambari-infra/ambari-infra-assembly/pom.xml  

(本例通过xftp下载编辑再上传,方更记录变更)
<solr.tar>http://archive.apache.org/dist/lucene/solr/${solr.version}/solr-${solr.version}.tgz</solr.tar>
改为:
<solr.tar>file:///compile-ambari/solr-${solr.version}.tgz</solr.tar>
如图:
在这里插入图片描述

4.5 修改 ambari-infra/ambari-infra-solr-client/pom.xml 文件

vim /opt/apache-ambari-2.7.7-src/ambari-infra/ambari-infra-solr-client/pom.xml

(本例通过xftp下载编辑再上传,方更记录变更)
<lucene6-core.url>https://repo1.maven.org/maven2/org/apache/lucene/lucene-core/${lucene6.version}/${lucene6-core-jar.name}</lucene6-core.url>
<lucene6-backward-codecs.url>https://repo1.maven.org/maven2/org/apache/lucene/lucene-backward-codecs/${lucene6.version}/${lucene6-backward-codecs-jar.name}</lucene6-backward-codecs.url>
改为:
<lucene6-core.url>file:///compile-ambari/${lucene6-core-jar.name}</lucene6-core.url>
<lucene6-backward-codecs.url>file:///compile-ambari/${lucene6-backward-codecs-jar.name}</lucene6-backward-codecs.url>
如图:
在这里插入图片描述

4.6 打版前快照一下(为失败再试作准备)

一次快照(压缩)

cd /opt
tar -zcvf ambari-2.7.7-src1.tar.gz apache-ambari-2.7.7-src


mv apache-ambari-2.7.7-src apache-ambari-2.7.7-src_bak1 && tar -zxvf ambari-2.7.7-src1.tar.gz -C . #用于还原快照重来

备免报错风险

chmod -R 777 apache-ambari-2.7.7-src

5,打版本号

cd /opt/apache-ambari-2.7.7-src
mvn versions:set -DnewVersion=2.7.7.0.1

在这里插入图片描述

pushd ambari-metrics
mvn versions:set -DnewVersion=2.7.7.0.1

在这里插入图片描述

popd
pushd ambari-logsearch
mvn versions:set -DnewVersion=2.7.7.0.1

在这里插入图片描述

popd
pushd ambari-infra
mvn versions:set -DnewVersion=2.7.7.0.1

在这里插入图片描述

popd

5.1 编译前快照一下(为失败再试作准备)

二次快照(压缩)

cd /opt
tar -zcvf ambari-2.7.7-src2.tar.gz apache-ambari-2.7.7-src


mv apache-ambari-2.7.7-src apache-ambari-2.7.7-src_bak2 && tar -zxvf ambari-2.7.7-src2.tar.gz -C . 用于还原快照重来

在这里插入图片描述

6,编译打包所有模块

备免报错风险

chmod -R 777 /opt/apache-ambari-2.7.7-src

6.1 安装前端依赖

把云盘上的node_modules.tar.gz,bower_components.tar.gz上传到/opt/compile-ambari/

在这里插入图片描述
解压免下载

cd /opt/compile-ambari/
tar -zxvf node_modules.tar.gz -C /opt/apache-ambari-2.7.7-src/ambari-admin/src/main/resources/ui/admin-web/  
tar -zxvf bower_components.tar.gz -C /opt/apache-ambari-2.7.7-src/ambari-admin/src/main/resources/ui/admin-web/app/
cd /opt/apache-ambari-2.7.7-src/ambari-admin/src/main/resources/ui/admin-web/ 
npm install
bower install

6.2 编译ambari-server,ambari-agent rpm包

cd /opt/apache-ambari-2.7.7-src
mvn  clean
mvn -B install rpm:rpm -DnewVersion=2.7.7.0.1 -DbuildNumber=388e072381e71c7755673b7743531c03a4d61be8 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip > install.log

加 -X 打印debug信息
失败重试: 如 -rf :ambari-web
在这里插入图片描述

6.3 编译ambari-metrics rpm包

pushd ambari-metrics
mvn install -Dbuild-rpm -DskipTests -Drat.skip=true > install_metrics.log
popd

在这里插入图片描述

6.4 编译ambari-infra rpm包

pushd ambari-infra
mvn install -Dbuild-rpm -DskipTests -Drat.skip=true > install_infra.log
popd

在这里插入图片描述

6.5 编译ambari-logsearch rpm包

pushd ambari-logsearch
mvn install -Dbuild-rpm -DskipTests -Drat.skip=true > install_logsearch.log
popd

在这里插入图片描述

7,合并rpm并发布ambari-2.7.7.0-1-centos7_8-x86_64.tar.gz

7.1 复制12个rpm 到 /opt/2.7.7.0-1/ambari/

mkdir -p /opt/2.7.7.0-1/ambari/ && cd /opt/apache-ambari-2.7.7-src 

cp ./ambari-server/target/rpm/ambari-server/RPMS/x86_64/ambari-server-2.7.7.0-1.x86_64.rpm ../2.7.7.0-1/ambari/
cp ./ambari-agent/target/rpm/ambari-agent/RPMS/x86_64/ambari-agent-2.7.7.0-1.x86_64.rpm ../2.7.7.0-1/ambari/
cp ./ambari-metrics/ambari-metrics-assembly/target/rpm/ambari-metrics-collector/RPMS/x86_64/ambari-metrics-collector-2.7.7.0-1.x86_64.rpm ../2.7.7.0-1/ambari/
cp ./ambari-metrics/ambari-metrics-assembly/target/rpm/ambari-metrics-hadoop-sink/RPMS/x86_64/ambari-metrics-hadoop-sink-2.7.7.0-1.x86_64.rpm ../2.7.7.0-1/ambari/
cp ./ambari-metrics/ambari-metrics-assembly/target/rpm/ambari-metrics-grafana/RPMS/x86_64/ambari-metrics-grafana-2.7.7.0-1.x86_64.rpm ../2.7.7.0-1/ambari/
cp ./ambari-metrics/ambari-metrics-assembly/target/rpm/ambari-metrics-monitor/RPMS/x86_64/ambari-metrics-monitor-2.7.7.0-1.x86_64.rpm ../2.7.7.0-1/ambari/
cp ./ambari-metrics/ambari-metrics-common/target/rpm/ambari-metrics-common/RPMS/noarch/ambari-metrics-common-2.7.7.0-1.noarch.rpm ../2.7.7.0-1/ambari/
cp ./ambari-infra/ambari-infra-assembly/target/rpm/ambari-infra-solr/RPMS/noarch/ambari-infra-solr-2.7.7.0-1.noarch.rpm ../2.7.7.0-1/ambari/
cp ./ambari-infra/ambari-infra-assembly/target/rpm/ambari-infra-solr-client/RPMS/noarch/ambari-infra-solr-client-2.7.7.0-1.noarch.rpm ../2.7.7.0-1/ambari/
cp ./ambari-infra/ambari-infra-assembly/target/rpm/ambari-infra-manager/RPMS/noarch/ambari-infra-manager-2.7.7.0-1.noarch.rpm ../2.7.7.0-1/ambari/
cp ./ambari-logsearch/ambari-logsearch-assembly/target/rpm/ambari-logsearch-portal/RPMS/noarch/ambari-logsearch-portal-2.7.7.0-1.noarch.rpm ../2.7.7.0-1/ambari/
cp ./ambari-logsearch/ambari-logsearch-assembly/target/rpm/ambari-logsearch-logfeeder/RPMS/noarch/ambari-logsearch-logfeeder-2.7.7.0-1.noarch.rpm ../2.7.7.0-1/ambari/

7.2 创建yum源

yum install createrepo -y 
cd /opt/2.7.7.0-1 && createrepo .

vim ambari.repo   并生成签名
#VERSION_NUMBER=2.7.7.0-1
[ambari-2.7.7.0-1]
name=ambari Version - ambari-2.7.7.0-1
baseurl=http://x86.repo.hdp.link/ambari/centos7/2.7.7.0-1/
gpgcheck=0
gpgkey=http://x86.repo.hdp.link/ambari/centos7/2.7.7.0-1/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

在这里插入图片描述

7.3 打包

cd /opt/ 
tar -zcvf ambari-2.7.7.0-1-centos7_8-x86_64.tar.gz 2.7.7.0-1

在这里插入图片描述

其它

A.备份依赖库存到/opt/bak,以备复用

mkdir /opt/bak

cd /usr/maven/apache-maven-3.8.8 
tar -zcvf /opt/bak/repository.tar.gz repository

cd /opt/apache-ambari-2.7.7-src/ambari-admin/src/main/resources/ui/admin-web/app 
tar -zcvf /opt/bak/bower_components.tar.gz bower_components

cd /opt/apache-ambari-2.7.7-src/ambari-admin/src/main/resources/ui/admin-web/
tar -zcvf /opt/bak/node_modules.tar.gz node_modules
tar -zcvf /opt/bak/node.tar.gz node

如图:
在这里插入图片描述

B.编译加速

-Dcheckstyle.skip=true
vim /opt/apache-ambari-2.7.7-src/ambari-server/pom.xml
在这里插入图片描述
试了。快不了多少~~

接下文Ambari2.7.7.0源码编译打包-0.5小时完成,进行1到n的熟练提速–0.5小时完成编译打包。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值