Ambari 2.2.0 源码编译

首先,我的环境是Mac OS,不过其他Linux环境也可以。

安装maven

下面是Mac环境的 Linux/Windows可以百度,具体安装大致相似。
(1) maven 3.0.4下载链接(注意版本一定要3.0.4 或 3.0.5)
http://archive.apache.org/dist/maven/maven-3/3.0.4/binaries/apache-maven-3.0.4-bin.tar.gz
(2) 解包并copy到对应目录

(3) vi ~/.bash_profile 文件中依次配置

(4) source ~/.bash_profile 并通过mvn –version 查看版本是否正确
maven的版本一定要是3.0.4或3.0.5,对于其他的三系版本,可能在Mac系统下会有bug,在编译的时候显示缺少对应的类。详情可以参见maven的jira:
https://issues.apache.org/jira/browse/MNG-5787
具体的错误可能如下:

安装python

具体过程请自行搜索。

下载源码

Ambari官网下载源码 Ambari 2.2.0下载链接:
http://mirrors.hust.edu.cn/apache/ambari/ambari-2.2.0/apache-ambari-2.2.0-src.tar.gz
使用华科的镜像比较快

编译

解包源码后 使用mvn 进行编译,由于我是用eclipse进行源码阅读,所以直接使用下面命令生成ecilpse项目。

由于Ambari运行环境不支持Mac如果需要编译成binary的需要参照官方文档:
https://cwiki.apache.org/confluence/display/AMBARI/Build+and+install+Ambari+2.2.0+from+Source
选择生成的是rpm 还是 jdeb格式

问题

(1)下载phantomjs-1.9.7-macosx.zip失败 配置的链接被墙。

解决过程:查看/Users/prime7/dc/ambari-2.2.0/ambari-admin/src/main/resources/ui/admin-web/npm-debug.log
发现下载的对应链接无法访问,上网查了下是被墙了,可以自行百度phantomjs-1.9.7-macosx.zip进行下载。下载后参照上面错误第一行的uri将对应下载后的zip拷贝到对应路径下。这个是国内镜像下载地址 http://npm.taobao.org/dist/phantomjs/

(2)编译 Ambari Metrics Collector 缺少ambari-metrics-common jar包

参见 https://cwiki.apache.org/confluence/display/AMBARI/Ambari+Development
官方做法是

实际在Mac上可以不用生成对应rpm deb

对应错误:

(3) phantomjs-1.9.8-macosx.zip 下载失败 具体原因和(1)一致。