安装好JDK,maven
这里我使用的是JDK 1.8-121,maven 3.3.9(好像要求的也是这个版本)
安装rpm,rpm-build,git
yum install rpm rpm-build.x86_64 git -y
安装gcc,python环境,包管理工具以及依赖项
yum install -y gcc gcc-c++ python-devel
python get-pip.py
pip install psutil
安装docker虚拟化工具,与配套的weave等网络工具,其中weave建议放置于/usr/bin下,避免使用sudo权限运行时提示找不到命令
yum install docker
curl -L git.io/weave -o /usr/bin/weave
wget -O /usr/local/bin/weave
chmod a+x /usr/local/bin/weave
下载所需文件
tar xfvz apache-ambari-2.7.0-src.tar.gz
cd apache-ambari-2.7.0-src
mvn versions:set -DnewVersion=2.7.0.0.0
pushd ambari-metrics
mvn versions:set -DnewVersion=2.7.0.0.0
popd
进行编译
执行下面命令
mvn -B clean install rpm:rpm -DnewVersion=2.7.0.0.0 -DbuildNumber=631319b00937a8d04667d93714241d2a0cb17275 -DskipTests -Dpython.ver="python >= 2.6"
备注:ambari-metrics rpm 需要单独编译,编译到ambari-logsearch会失败,这是因为ambari-logsearch和ambari-infra需要单独编译,只要其他的编译成功即可,下面会告诉你怎么便利这三个工程
编译ambari-metrics
cd ambari-metrics
mvn clean package -Dbuild-rpm -DskipTests
显示SUCEESS说明编译成功
编译ambari-logsearch
cd ambari-logsearch
mvn versions:set -DnewVersion=2.7.0.0.0
然后执行:
mvn clean package -P native,rpm -DskipTest
编译ambari-infra
$cd ambari-infra
mvn versions:set -DnewVersion=2.7.0.0.0
然后执行:
mvn clean package -P rpm -DskipTest
备注:如果编译过程中出现
Too many files with unapproved license
在编译命令上加上-Drat.skip=true进行编译即可
备注:在编译ambari-metrics时,需要在线下载hadoop,hbase,phoenix的包
为了加快编译速度,建议先下载到本地,安装httpd,通过本地下载,需要修改
ambari-metrics/pom.xml中的下面内容,将这个四个包下载到本地的http服务器中,并修改这个地方的路径
修改hadoop,hbase,phoenix的版本
修改ambari-metrics/ambari-metrics-timelineservice/pom.xml
整点hortonworks做的有点不好,1578这个版本,在他们maven仓库中都没有了,所以这个地方将1578改成1634
所有都编译完成以后,通过
find . -name *.rpm可以看到编译好的rpm