官方给的教程比较简单,需要事先安装的工具也是这里列一点,那里列一点。在此记录一下编译要点(在 centos 7 下)。
1. 事先需要安装的工具
yum install -y git svn node python-devel rpm-build gcc-c++
2. 安装 maven, JDK8
3. 下载 python2.7 设置工具
wget https://files.pythonhosted.org/packages/25/5d/cc55d39ac39383dd6e04ae80501b9af3cc455be64740ad68a4e12ec81b00/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea
4. 下载完成后,运行下面的命令
sh setuptools-.6c11-py2..egg
5. 设置环境变量
export PATH=/usr/local/apache-maven-3.3./bin:$PATH
export JAVA_HOME=$(/usr/libexec/java_home)
export _JAVA_OPTIONS="-Xmx2048m -XX:MaxPermSize=512m -Djava.awt.headless=true"
6. 运行下面的命令。
wget http://www.apache.org/dist/ambari/ambari-2.7.3/apache-ambari-2.7.3-src.tar.gz
tar xfvz apache-ambari-2.7.-src.tar.gz
cd apache-ambari-2.7.-src
mvn versions:set -DnewVersion=2.7.3.0. pushd ambari-metrics
mvn versions:set -DnewVersion=2.7.3.0.
popd
7. 进入 ambari-metrics 目录, pom.xml 里有几个 .tar.gz 的下载地址,先自己下载下来(比较慢),把下载好的几个文件放在服务器上,然后把相关的 URL 改成自己的服务的下载地址。不这么做的话,编译很慢,而且很容易虽为连接超时而出错。
8. 在最外层运行下面的命令
mvn -B clean install rpm:rpm -DnewVersion=2.7.3.0. -DbuildNumber=4295bb16c439cbc8fb0e7362f19768dde1477868 -DskipTests -Dpython.ver="python >= 2.6" -Drat.skip=true
第一次编译不成功再次编译的话,需要加上 -Drat.skip=true 这一参数,否则会报错。
9. 有的包会下载失败,在maven 仓库中会留下一些文件,会影响下次编译。运行下面的命令清除这些文件
find /opt/repos/ -name "*.lastUpdated" -exec rm -rf {} \;
10. 很多人的 maven 都会设置阿里的镜像,但是有些包貌似下载不到。我去掉阿里的镜像后。能成功下载。附上编译成功的截图。搞了2天,着实不容易。