Ambari 2.7.5 全部源码编译,详细教程,编译 ambari-metrics 模块时依赖的 tar.gz 包免费提供!!!
编译步骤、思路 适配于 ambari 所有版本!!
一、前置工作
版本说明:
工具 |
版本 |
操作系统 |
CentOS 7 |
java |
1.8.0_151 |
maven |
3.3.9 |
nodejs + npm |
v10.13.0 + 6.4.1 |
brunch |
1.7.20 |
rpm-build |
4.11.3-43.el7.x86_64 |
gcc-c++ |
4.8.5-39.el7.x86_64 |
python |
2.6(系统自带) |
python-devel |
2.7.5-88.el7.x86_64 |
bower |
1.8.12 |
gulp |
2.3.0 |
1、java 安装
1)下载源码
mkdir /usr/java
cd /usr/java
# 将jdk-8u181-linux-x64.tar.gz拷贝到/usr/java目录下
# 解压
tar zxvf jdk-8u181-linux-x64.tar.gz
# 删除tar包
rm -rf jdk-8u181-linux-x64.tar.gz
2)修改配置文件
vim /etc/profile
# 文末添加如下:
# set java
export JAVA_HOME=/usr/java/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin
# 保存并退出
:wq!
# 使配置文件生效
source /etc/profile
3)查看版本
java -version
2、maven 安装
1)下载源码
mkdir /usr/maven
cd /usr/maven
# 下载源码
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
# 解压
tar zxvf apache-maven-3.3.9-bin.tar.gz
# 删除tar包
rm -rf apache-maven-3.3.9-bin.tar.gz
2)修改配置文件
vim /etc/profile
# 文末添加如下:
# set mvn
export MAVEN_HOME=/usr/maven/apache-maven-3.3.9
export PATH=$MAVEN_HOME/bin:$PATH
# 保存并退出
:wq!
# 使配置文件生效
source /etc/profile
3)查看版本
mvn -v
3、nodejs 安装
1)下载源码
nodejs版本库:https://nodejs.org/dist/ ,进入可以选择任意版本。
在这里,我们使用 v10.13.0 版本:
mkdir /usr/nodejs
cd /usr/nodejs
# 将node-v10.13.0-linux-x64.tar.gz拷贝到/usr/nodejs目录下
# 解压
tar zxvf node-v10.13.0-linux-x64.tar.gz
# 删除tar包
rm -rf node-v10.13.0-linux-x64.tar.gz
2)修改配置文件
vim /etc/profile
# 文末添加如下:
# set nodejs
export NODE_HOME=/usr/nodejs/node-v10.13.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin
# 保存并退出
:wq!
# 使配置文件生效
source /etc/profile
3)查看版本
# 在任意目录下输入:
node -v
npm -v
4、brunch 安装
1)查找node根目录
cd `npm root -g`
2)更改淘宝源
npm config set registry https://registry.npm.taobao.org
npm info underscore
3)安装1.7.20版本的brunch
npm install -g brunch@1.7.20
4)查看版本
brunch -V
5、rpm-build 安装
# centos-7 自带
yum install rpm-build
6、gcc-c++ 安装
# centos-7 自带
yum install gcc-c++
7、python-devel 安装
# centos-7 自带
yum install python-devel
二、编译 Ambari
1、下载 ambari 2.7.5
wget https://www-eu.apache.org/dist/ambari/ambari-2.7.5/apache-ambari-2.7.5-src.tar.gz
2、maven 镜像源配置
添加好下述镜像源,会提高编译ambari的速度。
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
alimaven
central
aliyun maven
http://maven.aliyun.com/nexus/content/repositories/central/
nexus-hortonworks
*,!central
Nexus hortonworks
https://repo.hortonworks.com/content/groups/public/
HDPReleases
HDP Releases
http://repo.hortonworks.com/content/repositories/releases/
central
3、编译命令
参考资料:https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.7.5
# 打版本号
tar xfvz apache-ambari-2.7.5-src.tar.gz
cd apache-ambari-2.7.5-src
chown -R root:root ./*
mvn versions:set -DnewVersion=2.7.5.0.0
# 进入ambari-metrics模块
pushd ambari-metrics
# 打版本号
mvn versions:set -DnewVersion=2.7.5.0.0
# 返回到ambari根目录
popd
# 开始编译
mvn -B -X install rpm:rpm -DnewVersion=2.7.5.0.0 -DbuildNumber=5895e4ed6b30a2da8a90fee2403b6cab91d19972 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true
# 建议将上述命令全量复制,需要buildNumber,否则等rpm包安装时,会报buildNumber错误。
三、报错记录
1、Ambari Admin View 模块 - phantomjs-2.1.1.tar.gz 下载失败
如上图所示,可能由于网络原因,导致 phantomjs tar 包下载失败,可以手动下载并上传到指定目录下,然后重新编译。可执行以下命令,在当前模块前重新编译:
mvn -B -X install rpm:rpm -DewVersion=2.7.5.0.0 -DbuildNumber=5895e4ed6b30a2da8a90fee2403b6cab91d19972 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true -rf :ambari-admin
2、编译 Ambari Admin View - bower install --allow-root 失败
需要修改 ambari-admin/pom.xml 文件,将:
修改为:
问题解决,继续编译:
mvn -B -X install rpm:rpm -DnewVersion=2.7.5.0.0 -DbuildNumber=5895e4ed6b30a2da8a90fee2403b6cab91d19972 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true -rf :ambari-admin
3、ambari-metric: hbase、hadoop、grafana、phoenix相关tar包下载地址失效
将 ambari-metrics/pom.xml 某些 tar 包的地址由外网地址,修改为从本地目录中获取。
HTML, XML
file:///lyz/ambari_compile/hbase-2.0.2.3.1.4.0-315-bin.tar.gz
file:///lyz/ambari_compile/hadoop-3.1.1.3.1.4.0-315.tar.gz
file:///lyz/ambari_compile/grafana-6.4.2.linux-amd64.tar.gz
file:///lyz/ambari_compile/phoenix-5.0.0.3.1.4.0-315.tar.gz
文件修改完之后,可以从 ambari-metrics 模块继续编译:
mvn -B -X install rpm:rpm -DnewVersion=2.7.5.0.0 -DbuildNumber=5895e4ed6b30a2da8a90fee2403b6cab91d19972 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true -rf :ambari-metrics
4、ambari-server: findbugs-maven-plugin:3.0.5:findbugs failed: Timeout: killed the sub-process
可能超时,可以在 ambari-server 模块重新编译一次,执行以下命令:
mvn -B -X install rpm:rpm -DnewVersion=2.7.5.0.0 -DbuildNumber=5895e4ed6b30a2da8a90fee2403b6cab91d19972 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true -rf :ambari-server
5、ambari-logsearch-web 模块编译失败
ambari-logsearch-web: Could not extract the Yarn archive: Could not extract archive: '/root/.m2/repository/com/github/eirslett/yarn/1.1.0/yarn-1.1.0.tar.gz'
怀疑因为网络关系,yarn-v1.1.0.tar.gz 包不完整,所以删除重新编译下载。并执行:
find ~/.m2/repository/ -name "*.lastUpdated" -exec rm -rf {} \;
将 yarn-v1.1.0.tar.gz 重命名为 yarn-1.1.0.tar.gz,并拷贝到 /root/.m2/repository/com/github/eirslett/yarn/1.1.0 目录下。
继续从 ambari-logsearch-web 模块编译:
mvn -B -X install rpm:rpm -DnewVersion=2.7.5.0.0 -DbuildNumber=5895e4ed6b30a2da8a90fee2403b6cab91d19972 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true -rf :ambari-logsearch-web
6、ambari-logsearch-web 模块 :yarn install --ignore-engines --pure-lockfile 报错
解决办法:
有可能是因为网络问题,再重新执行一下该命令:
/lyz/apache-ambari-2.7.5-src/ambari-logsearch/ambari-logsearch-web/target/webapp-build/node/yarn/dist/bin/yarn install --ignore-engines --pure-lockfile
我继续执行编译,就通过了。
7、project ambari: Too many files with unapproved license: 1 See RAT report in: ./apache-ambari-2.7.5-src/target/rat.txt
当编译失败继续编译的时候,有时就会提示 license 相关的错误:
解决办法:
# 增加-Drat.skip=true 参数,跳过 license 检查
mvn -B -X install rpm:rpm -DnewVersion=2.7.5.0.0 -DbuildNumber=5895e4ed6b30a2da8a90fee2403b6cab91d19972 -DskipTests -Drat.skip=true -Dpython.ver="python >= 2.6"
8、/usr/sbin/ambari-server:行34: buildNumber: 未绑定变量
当通过 yum 安装编译 ambari 成功的 ambari-server.rpm 包后,执行 ambari-server setup时,出现 buildNumber 错误。
这个是 ambari 编译时,未指定 buildNumer 所导致。
可以修改 /usr/sbin/ambari-server 文件,为 $buildNumer 赋值。
也可以重新编译,执行以下命令:
mvn clean
mvn -B -X install rpm:rpm -DnewVersion=2.7.5.0.0 -DbuildNumber=5895e4ed6b30a2da8a90fee2403b6cab91d19972 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true
四、根据新编译的 rpm 包安装 ambari
# 卸载已有的 ambari-server
yum remove ambari-server
# 根据新编译的 rpm 包安装 ambari
yum install ambari-server/target/rpm/ambari-server/RPMS/x86_64/ambari-server-2.7.5.0-0.x86_64.rpm
# 配置 ambari-server
ambari-server setup
# 启动 ambari-server
ambari-server start