CentOS7 下 Apache Ambari 2.7.4 源码编译安装参考文档
前言
很多玩大数据 Hadoop 生态系统的同学,2021 年 2 月开始感觉系统搭建和试验过程不舒服
了,因为 Cloudera 出尔反尔,不仅没有按之前合并 hortonworks 之初宣传进行扩大开源,
反而开始转向全面收费,把之前很多社区免费资源下载的链接都转移到付费墙后面,导致很
多之前的安装、维护工具因为链接失效而不能使用了,原本顺畅的过程开始各种报错……
世上无难事,只怕有心人,因为之前版本已使用 Apache 协议,Cloudera 只好让之前免费版
本继续可以免费使用,他也只能恶心一下我们这些穷苦大众,撤销下载链接之后的资源,让
之前设定好的安装、维护工具变得不可靠,导致很多没有备份安装文件的同学在重装系统时
也麻烦了很多。
这篇文章就是记录这个背景下,在 CentOS7 进行源码编译安装 Apache Ambari 2.7.4 的过
程。
说明及经验教训:
1. 为什么不直接用 CDH 包,而要折腾源码编译安装?因为 Cloudera 已经干过出尔反尔的
不耻行为了,不保证他以后又会出什么幺蛾子,所以尽量避免使用他的整合包
2. 多用阿里云镜像或者网易镜像,能加速很多
3. 了解几个常用的编译工具,问题出现在这些点上的时候要想到是不是这些工具没安装
相关连接
编译官方说明:
https://cwiki.apache.org/confluence/display/AMBARI/Ambari+Development
部署官方说明:
https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.7.5
git 地址:https://github.com/apache/ambari
编译
编译环境安装
yum install -y java-1.8.0-openjdk-devel
yum install -y gcc-c++ rpm-build git
安装 maven 新版 3.6.3(至少需要 3.1.0 以上)
#pip 安装(官方中说安装 setuptools 即可,pip 比较好装,包含了 setuptools)
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
nodejs 环境安装
yum install epel-release
yum install nodejs -y
升级 nodejs
sudo npm install n -g
sudo n stable
vi ~/.bash_profile 添加
export PATH=/usr/local/bin/:$PATH:/root/apache-maven-3.6.3/bin
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
再执行 source ~/.bash_profile
安装 yarn 等
curl
/etc/yum.repos.d/yarn.repo
sudo yum install yarn
npm install -g bower
npm install -g gulp
https://dl.yarnpkg.com/rpm/yarn.repo
--location
--silent
|
sudo
tee
下载源码及解压编译
到 github 下载 https://github.com/apache/ambari/archive/release-2.7.4.tar.gz
下载后解压,编译
tar xfvz apache-ambari-2.7.4-src.tar.gz cd apache-ambari-2.7.4-src
mvn versions:set -DnewVersion=2.7.4.0.0
pushd ambari-metrics
mvn versions:set -DnewVersion=2.7.4.0.0
popd
-DnewVersion=2.7.4.0.0
mvn
DbuildNumber=5895e4ed6b30a2da8a90fee2403b6cab91d19972
-DskipTests
Dpython.ver="python >= 2.6" apache-rat:check -Drat.numUnapprovedLicenses=600
注:编译过程中失败,继续从该项目编译即可(mvn 命令后添加参数如下,后面的 ambari-
metrics-host-monitoring 就是提示的项目名)
mvn …… -rf :ambari-metrics-host-monitoring
rpm:rpm
install
-B
clean
-
-
镜像加速
觉得下载依赖包特别慢的,可以添加阿里云镜像
注意:后面下载 storm 源的时候会报找不到,此时把 public 的
*
改成
public
vi ${maven 安装目录}/conf/settings.xml
ali apache snapshots
https://maven.aliyun.com/repository/apache-snapshots
apache snapshots
ali central
https://maven.aliyun.com/repository/central
central
ali google
https://maven.aliyun.com/repository/google
google
ali gradle-plugin
https://maven.aliyun.com/repository/gradle-plugin
gradle-plugin
ali jcenter
https://maven.aliyun.com/repository/jcenter
jcenter
ali spring
https://maven.aliyun.com/repository/spring
spring
ali spring-plugin
https://maven.aliyun.com/repository/spring-plugin
spring-plugin
ali public
https://maven.aliyun.com/repository/public
*
ali releases
https://maven.aliyun.com/repository/releases
releases
ali snapshots
https://maven.aliyun.com/repository/snapshots
snapshots
ali grails-core
https://maven.aliyun.com/repository/grails-core
grails-core
ali mapr-public
https://maven.aliyun.com/repository/mapr-public
mapr-public
大包提前下载
hadoop 等包,在 pom.xml 中的原下载链接有几个已经失效(就是万恶的 Cloudera 合并
Hortonworks 之后,于 2020 年中决定出尔反尔,宣布 2021 年 2 月之后,这些下载都要付费
订阅的账号才能下载了),一定要提前下载好,并修改 pom.xml,才可能编译成功。
vi ambari-metrics/pom.xml,找到
https://s3.amazonaws.com/dev.hortonworks.com/HDP/centos7/3.x/BUILDS/3.1.
4.0-315/tars/hbase/hbase-2.0.2.3.1.4.0-315-bin.tar.gz
hbase-2.0.2.3.1.4.0-315
https://s3.amazonaws.com/dev.hortonworks.com/HDP/centos7/3.x/BUILDS/3.
1.4.0-315/tars/hadoop/hadoop-3.1.1.3.1.4.0-315.tar.gz
hadoop-3.1.1.3.1.4.0-315
grafana-2.6.0
https://grafanarel.s3.amazonaws.com/builds/grafana-2.6.0.linux-
x64.tar.gz
https://s3.amazonaws.com/dev.hortonworks.com/HDP/centos7/3.x/BUILDS/3.
1.4.0-315/tars/phoenix/phoenix-5.0.0.3.1.4.0-315.tar.gz
phoenix-5.0.0.3.1.4.0-315
这几段,从 CSDN 或者 coder100.com 等网站可搜索到对应的包下载(积分不够的,可以联
系作者),再部署到自己本地的 web 服务器上,然后修改这个 pom.xml 中的 url 地址
hbase-2.0.2.3.1.4.0-315-bin.tar.gz
https://download.csdn.net/download/u014728155/12918767
hadoop-3.1.1.3.1.4.0-315.tar.gz
https://download.csdn.net/download/u014728155/12918795
phoenix-5.0.0.3.1.4.0-315.tar.gz
https://download.csdn.net/download/u014728155/12918806
grafana-2.6.0.linux-x64.tar.gz 原地址可以直接下载,但因文件比较大,建议用下载工具提前
下载好
各种错误处理
https://nodejs.org/dist/v4.5.0/node-v4.5.0-linux-x64.tar.gz
to
/root/.m2/repository/com/github/eirslett/node/4.5.0/node-4.5.0-linux-x64.tar.gz
报错
[INFO] Downloading
/root/.m2/repository/com/github/eirslett/node/4.5.0/node-4.5.0-linux-x64.tar.gz
[INFO] No proxies configured
[INFO] No proxy was configured, downloading directly
[INFO] Unpacking /root/.m2/repository/com/github/eirslett/node/4.5.0/node-4.5.0-linux-
x64.tar.gz into /root/apache-ambari-2.7.5-src/ambari-web/node/tmp
……
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.4:install-node-
and-yarn (install node and yarn) on project ambari-web: Could not extract the Node archive:
Could not extract archive: '/root/.m2/repository/com/github/eirslett/node/4.5.0/node-4.5.0-
linux-x64.tar.gz': EOFException -> [Help 1]
解决:手动下载
curl -o
https://nodejs.org/dist/v4.5.0/node-v4.5.0-linux-x64.tar.gz
报错
[ERROR] warning fsevents@0.3.8: The platform "linux" is incompatible with this module.
解决
npm install pm2@latest -g
pm2 install pm2-slack
(执行后上面的错误也还存在,但是可以往下走,这里发现了需要安装 bower,安装这个即
可)
安装 bower 的依赖包(个人在 ambari-admin/src/main/resources/ui/admin-web/下执行)
bower install --allow-root
报错
Failed to execute goal org.apache.rat:apache-rat-plugin:0.12:check (default) on project
ambari: Too many files with unapproved license: 1 See RAT report in: /root/apache-ambari-
2.7.5-src/target/rat.txt -> [Help 1]
https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-
解决:在 mvn 命令中添加参数
apache-rat:check -Drat.numUnapprovedLicenses=600
数字 600 是一个大于报错信息中的数量。
报错
PhantomJS not found on PATH
Downloading
x86_64.tar.bz2
[ERROR] Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-
linux-x86_64.tar.bz2
[ERROR] Saving to /tmp/phantomjs/phantomjs-1.9.7-linux-x86_64.tar.bz2
[ERROR] Receiving...
[ERROR]
[ERROR] Error making request.
[ERROR] Error: read ECONNRESET
[ERROR] at exports._errnoException (util.js:907:11)
[ERROR] at TLSWrap.onread (net.js:557:26)
应该是下载超时了,网上说用 cnpm,这个需要改编译过程,不合适
####不需要执行 npm install -g cnpm --registry=https://registry.npm.taobao.org
下载这个确实太久了,咱手动从淘宝镜像上下载
wget https://npm.taobao.org/mirrors/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
cp phantomjs-2.1.1-linux-x86_64.tar.bz2 /tmp/phantomjs/
下载完 2.1.1 又会提示需要 1.9.7
wget https://npm.taobao.org/mirrors/phantomjs/phantomjs-1.9.7-linux-x86_64.tar.bz2
cp phantomjs-1.9.7-linux-x86_64.tar.bz2 /tmp/phantomjs/
接下来又报错/tmp/npm_config_tmp/phantomjs/这个目录下也要下载 phantomjs,一样的版
本,都拷贝过去……
cp phantomjs-* /tmp/npm_config_tmp/phantomjs/
wget https://npm.taobao.org/mirrors/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2 -O
/tmp/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2
后面还有……
wget https://npm.taobao.org/mirrors/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 -O
/tmp/logsearch_npm_config_tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
报错
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a
JDK?
解决
yum install -y java-1.8.0-openjdk-devel
这个是安装 jdk,yum install -y java-1.8.0-openjdk 这个是安装 jre,详见
yum search openjdk
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment 8
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment 8
报错
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (Bower
install) on project ambari-admin: Command execution failed. Process exited with an error: 1
(Exit value: 1) -> [Help 1]
往上找,发现
[INFO] Running 'npm install --unsafe-perm' in /root/apache-ambari-2.7.4-src/ambari-
admin/src/main/resources/ui/admin-web
……
[INFO] --- exec-maven-plugin:1.2.1:exec (Bower install) @ ambari-admin ---
bower error Unexpected token {
……
处理
vi ambari-admin/pom.xml
${basedir}/src/main/resources/ui/admin-
web/node_modules/bower/bin/bower
改为
bower
报错