官方給的教程比較簡單,需要事先安裝的工具也是這里列一點,那里列一點。在此記錄一下編譯要點(在 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-0.6c11-py2.7.egg
5. 設置環境變量
export PATH=/usr/local/apache-maven-3.3.9/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.3-src.tar.gz cd apache-ambari-2.7.3-src mvn versions:set -DnewVersion=2.7.3.0.0 pushd ambari-metrics mvn versions:set -DnewVersion=2.7.3.0.0 popd
7. 進入 ambari-metrics 目錄, pom.xml 里有幾個 .tar.gz 的下載地址,先自己下載下來(比較慢),把下載好的幾個文件放在服務器上,然后把相關的 URL 改成自己的服務的下載地址。不這么做的話,編譯很慢,而且很容易雖為連接超時而出錯。
8. 在最外層運行下面的命令
mvn -B clean install rpm:rpm -DnewVersion=2.7.3.0.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天,着實不容易。