上最终结果图
参考了很多文章,归纳总结了自己成功的过程。
一: 下载源码 src代表源码,源码下载地址
Apache存档站点(推荐):http://archive.apache.org/dist/
Apache官方站点:http://www.apache.org/dist/
Apache备份站点:http://www.eu.apache.org/dist/
二:编译环境:
Centos7、maven3.6.3、node4.5、jdk1.8 、bower
1、下载node、maven、jdk
wget https://nodejs.org/dist/v4.5.0/node-v4.5.0-linux-x64.tar.gz
https://nodejs.org/dist/v16.15.1/node-v16.15.1-linux-x64.tar.gz (换高版本,看下能否解决 bower install --allow-root的各种问题 ; 不能解决)
wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
下载jdk1.8: 自己下载
2、解压
tar -zvxf node-v4.5.0-linux-x64.tar.gz
tar -zvxf apache-maven-3.6.3-bin.tar.gz
tar -zvxf jdk-8u271-linux-x64.tar.gz
3、配置环境变量
vim /etc/profile
#添加内容如下:
export NODE_HOME=/root/node-v4.5.0-linux-x64
export MAVEN_HOME=/root/apache-maven-3.6.3
export JAVA_HOME=/root/jdk1.8.0_271
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:
N
O
D
E
H
O
M
E
/
b
i
n
:
NODE_HOME/bin:
NODEHOME/bin:MAVEN_HOME/bin:
#重新读取环境变量
source /etc/profile
java --version
mvn -v
(maven 配置个阿里云的镜像,下载会快很多)
node -v
4、安装所需软件
yum install -y wget psutils gcc-c++ rpm-build python-devel git python-devel.x86_64
npm install bower -g
5、搭建http服务
yum install -y httpd
systemctl enable httpd
systemctl start httpd
需要关闭防火墙才能访问
(1)、下载如下安装包 (这部分安装包为什么会用到暂时不知道)
hadoop-3.1.1.tar.gz
hbase-2.0.2.tar.gz
grafana-6.7.4.linux-amd64.tar.gz
apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
wget https://archive.apache.org/dist/hbase/2.0.2/hbase-2.0.2-bin.tar.gz
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz
wget http://mirror.bit.edu.cn/apache/phoenix/apache-phoenix-5.0.0-HBase-2.0/bin/apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz
http://archive.apache.org/dist/phoenix/apache-phoenix-5.0.0-HBase-2.0/bin/apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz (phoenix官网地址)
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-6.7.4.linux-amd64.tar.gz
(2)、移动文件到http服务的/var/www/html/ambari目录
mkdir /var/www/html/ambari
mv hadoop-3.1.1.tar.gz hbase-2.0.2.tar.gz grafana-enterprise-6.7.4.linux-amd64.tar.gz apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz /var/www/html/ambari
6、下载apache-ambari-2.7.6-src.tar.gz源文件
wget https://mirrors.tuna.tsinghua.edu.cn/apache/ambari/ambari-2.7.6/apache-ambari-2.7.6-src.tar.gz
tar zxvf apache-ambari-2.7.6-src.tar.gz
cd apache-ambari-2.7.6-src
7、安装bower的依赖包
cd ambari-admin/src/main/resources/ui/admin-web
bower install --allow-root
这里bower install 会下载很麻烦,
可以采用 git clone -b 分支 https:****.git 下载。或者手动网页打开浏览器下载对应分支;
然后再 unzip *.zip -d ./ 解压到 admin-web/app/bower_components 路径下
(还是没有解决问题,还是需要去 ambari-admin 模块下面让 bower install 执行成功、后面换成其他办法就解决了问题)
8、修改/root/apache-ambari-2.7.6-src目录下的pom文件
在前面添加hdp仓库
cd /root/apache-ambari-2.7.6-src
vi pom.xml
#添加如下内容
下面展示一些 内联代码片
。
<repository>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
<id>HDPReleases</id>
<name>HDP Releases</name>
<url>https://repo.hortonworks.com/content/repositories/releases/</url>
<layout>default</layout>
</repository>
9、修改ambari-metrics的pom.xml文件的下载路径
vi /root/apache-ambari-2.7.6-src/ambari-metrics/pom.xml
#修改为如下
<hbase.tar>http://localhost/ambari/hbase-2.0.2-bin.tar.gz</hbase.tar>
<hadoop.tar>http://localhost/ambari/hadoop-3.1.1.tar.gz</hadoop.tar>
<grafana.tar>http://localhost/ambari/grafana-enterprise-6.7.4.linux-amd64.tar.gz</grafana.tar>
<phoenix.tar>http://localhost/ambari/apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz</phoenix.tar>
三、开始编译,然后解决遇到的各种问题
// 编译语句
mvn clean install rpm:rpm -DnewVersion=2.7.6.0.0 -DskipTests -Drat.skip=true -Dpython.ver=“python >= 2.6”
四、遇到的错误收集
1、连接github去下载phantomjs-2.1.1-linux-x86_64.tar.bz2失败,需要手动去将phantomjs-2.1.1-linux-x86_64.tar.bz2下载到/tmp/npm_config_tmp/phantomjs/目录下
cd /tmp/npm_config_tmp/phantomjs/
wget https://npm.taobao.org/mirrors/phantomjs//phantomjs-2.1.1-linux-x86_64.tar.bz2
2.、bower install github导致失败问题,下载不了文件
3、Too many files with unapproved license(许可证未经批准的文件太多)
[ERROR] Failed to execute goal org.apache.rat:apache-rat-plugin:0.11:check (default) on project ambari: Too many files with unapproved license: 780 See RAT report in: /home/kylin/apache-ambari-2.4.2-src/target/rat.txt -> [Help 1]
解决办法:加上 编译命令上加上 -Drat.skip=true 例如(mvn clean install rpm:rpm -DskipTests -Drat.skip=true -Dpython.ver=“python >= 2.6”)
mvn clean install rpm:rpm -DskipTests -Drat.skip=true -Dpython.ver=“python >= 2.6”
mvn clean install rpm:rpm -DnewVersion=2.7.6.0.0 -DskipTests -Drat.skip=true -Dpython.ver=“python >= 2.6” -X
mvn -B clean install rpm:rpm -DnewVersion=2.7.6.0.0 -DbuildNumber=388e072381e71c7755673b7743531c03a4d61be8 -DskipTests -Dpython.ver=“python >= 2.6”
4、Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (Gulp build) on project ambari-admin
5、[ERROR] Failed to execute goal on project ambari-metrics-storm-sink-legacy: Could not resolve dependencies for project org.apache.ambari:ambari-metrics-storm-sink-legacy:jar:2.7.3.0.0: Failed to collect dependencies at org.apache.storm:storm-core:jar:0.10.0.2.3.0.0-2557: Failed to read artifact descriptor for org.apache.storm:storm-core:jar:0.10.0.2.3.0.0-2557: Could not transfer artifact org.apache.storm:storm-core:pom:0.10.0.2.3.0.0-2557 from/to apache-hadoop (http://nexus-private.hortonworks.com/nexus/content/groups/public): Connect to nexus-private.hortonworks.com:80 [nexus-private.hortonworks.com/54.173.242.72] failed: Connection timed out (Connection timed out) -> [Help 1]
6、.相关问题及解决
无法访问org.json.simple.JSONAware
在ambari-metrics-storm-sink-legacy中pom.xml中添加依赖。
下面展示一些 内联代码片
。
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>