ambari-2.7.5.0 全部模块源码编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ambari-2.7.5.0 全部模块源码编译相关的知识,希望对你有一定的参考价值。

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

ambari-2.7.5.0

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

ambari-2.7.5.0

3)安装1.7.20版本的brunch

npm install -g brunch@1.7.20

ambari-2.7.5.0

4)查看版本

brunch -V

ambari-2.7.5.0

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 下载失败

ambari-2.7.5.0

如上图所示,可能由于网络原因,导致 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-2.7.5.0

需要修改 ambari-admin/pom.xml 文件,将:

ambari-2.7.5.0

修改为:

ambari-2.7.5.0

问题解决,继续编译:

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-2.7.5.0

将 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-2.7.5.0

文件修改完之后,可以从 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-2.7.5.0

可能超时,可以在 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

ambari-2.7.5.0

怀疑因为网络关系,yarn-v1.1.0.tar.gz 包不完整,所以删除重新编译下载。并执行:

find ~/.m2/repository/ -name "*.lastUpdated" -exec rm -rf \\;

ambari-2.7.5.0

将 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 报错

ambari-2.7.5.0

解决办法:

有可能是因为网络问题,再重新执行一下该命令:

/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 相关的错误:

ambari-2.7.5.0

解决办法:

# 增加-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-2.7.5.0

这个是 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

以上是关于ambari-2.7.5.0 全部模块源码编译的主要内容,如果未能解决你的问题,请参考以下文章

在 ubuntu 上使用 linux 源码编译模块

CentOS 7使用源码编译安装Nginx,以及配置使用autoindex模块

Android源码(AOSP) 模块编译时增加速度

Hive源码系列编译模块之整体介绍

spring源码编译orm模块报循环依赖错误解决方法

如何单独编译Android源代码中的模块