0.編譯環境和基本軟件安裝說明
- cent os 7.5
- maven 3.3.9
由於編譯環境有關jar包不容易找到(storm-core-0.10.0.2.3.0.0-2557.jar、zookeeper-3.4.5.1.3.0.0-107.jar、zookeeper-3.4.6.2.3.0.0-2557.jar)。貼出ambari編譯的maven repository,將該repository替換成.m2/repostiroy目錄即可。
提取碼:ambari
1. 搭建http服務環境
安裝過程會嘗試從網絡上現在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,制作本地http服務可加速。
yum -y install httpd
systemctl enable httpd
systemctl start httpd
安裝包的下載路徑如下:
- hadoop-3.1.1.tar.gz(https://repo.huaweicloud.com/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz)
- hbase-2.0.2.tar.gz(https://repo.huaweicloud.com/apache/hbase/2.0.2/hbase-2.0.2-bin.tar.gz)
- grafana-6.7.4.linux-amd64.tar.gz(https://dl.grafana.com/oss/release/grafana-6.7.4.linux-amd64.tar.gz)
- apache-phoenix-5.0.0-HBase-2.0-bin.tar.gz(https://repo.huaweicloud.com/apache/phoenix/apache-phoenix-5.0.0-HBase-2.0/)
將上述文件移至/var/www/html/compile-ambari目錄下,需要新建compile-ambari目錄
mkdir -p /var/www/html/compile-ambari
vi /etc/selinux/config
SELINUX=disabled
關閉防火牆、selinux
systemctl stop firewalld
systemctl dsable firewalld
setenforce 0
測試httpd訪問連通性

2. 搭建編譯環境
2.1 配置Java環境
vi /etc/porfile
export JAVA_HOME=/usr/local/jdk_1.8
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
2.2 配置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 -C /usr/local
mv apache-maven-3.3.9-bin maven_3.3.9
vi /etc/porfile
export MAVEN_HOME=/usr/local/maven_3.3.9
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
source /etc/profile
maven repo切換為國內華為源
cd $MAVEN_HOME/conf
vi settings.xml
<mirror>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://repo.huaweicloud.com/repository/maven/</url>
</mirror>
2.3 rpm依賴下載
yum -y install rpm
yum -y install rpm-build
yum -y install gcc-c++
2.4 python2環境檢查
# 檢查python版本,低於2.6的重新安裝
python -V
# 初始化python-devel
yum install python-devel
2.5安裝git
yum install git
2.6 安裝python setuptools
wget https://pypi.python.org/packages/45/29/8814bf414e7cd1031e1a3c8a4169218376e284ea2553cc0822a6ea1c2d78/setuptools-36.6.0.zip
unzip setuptools-36.6.0.zip
cd setuptools-36.6.0
python setup.py install
3.下載Ambari源碼
下載ambari源碼
wget https://repo.huaweicloud.com/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
修改ambari-metrics/pom.xml文件,將habse、hadoop、phoenix和grafana的下載路徑進行替換。
<hbase.tar>http://192.168.2.174/compile-ambari/hbase-2.0.2-bin.tar.gz</hbase.tar><hadoop.tar>http://192.168.2.174/compile-ambari/hadoop-3.1.1.tar.gz</hadoop.tar>
<grafana.tar>http://192.168.2.174/compile-ambari/grafana-6.7.4.linux-amd64.tar.gz</grafana.tar>
<phoenix.tar>http://192.168.2.174/compile-ambari/apache-phoenix-5.0.0-HBase-2.0-
執行編譯命令
mvn -B clean install package rpm:rpm -DnewVersion=2.7.6.0.0 -DskipTests -Drat.skip -Dpython.ver="python >= 2.7" -Preplaceurl
-e 參數可以打印具體編譯過程報錯信息
可以得到

4.相關問題及解決
無法訪問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>
卡在 [INFO] Downloading https://github.com/yarnpkg/yarn/releases/download/v0.23.2/yarn-v0.23.2.tar.gz to /root/.m2/repository/com/github/eirslett/yarn/0.23.2/yarn-0.23.2./yarn-v0.23.2.tar.gz
連接到github並下載yarn-v0.23.2.tar.gz,放到對應maven目錄中
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.4:yarn (yarn install) on project ambari-web: Failed to run task: 'yarn install --ignore-engines --pure-lockfile' failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) -> [Help 1]
連接github下載node_modules無法連接,建議在網絡情況好的時候,重新編譯。
[ERROR] error /root/apache-ambari-2.7.6-src/ambari-web/node_modules/phantomjs-prebuilt: Command failed.
[ERROR] Exit code: 1
[ERROR] Command: sh
[ERROR] Arguments: -c node install.js
[ERROR] Directory: /root/apache-ambari-2.7.6-src/ambari-web/node_modules/phantomjs-prebuilt
[ERROR] Output:
[ERROR] PhantomJS not found on PATH
[ERROR] Downloading https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2
[ERROR] Saving to /tmp/npm_config_tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2
[ERROR] Receiving...
[ERROR]
[ERROR] Error making request.
[ERROR] Error: socket hang up
[ERROR] at TLSSocket.onHangUp (_tls_wrap.js:1054:19)
[ERROR] at TLSSocket.g (events.js:260:16)
[ERROR] at emitNone (events.js:72:20)
[ERROR] at TLSSocket.emit (events.js:166:7)
[ERROR] at endReadableNT (_stream_readable.js:921:12)
[ERROR] at nextTickCallbackWith2Args (node.js:442:9)
[ERROR] at process._tickCallback (node.js:356:17)
[ERROR]
[ERROR] Please report this full log at https://github.com/Medium/phantomjs
連接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
