1 编译环境

编译过程中用到以下编译工具,都需要安装好。

  • JDK7 (Ambari 2.0 或更低版本的可以使用 JDK6)
  • Apache Maven 3.0.5,Maven高版本会在编译时报错
  • Python 2.6
  • Python setuptools
  • rpmbuild (rpm-build package)
  • g++ (gcc-c++ package)
  • NodeJS - 最新的测试过的稳定版本为v0.10.40, 0.12.x使用会有问题
  • Brunch 1.7.20 (请先安装NodeJS),使用npm install -g brunch@1.7.20安装

1.1 安装JDK

步骤略

1.2 安装Apache Maven 3.0.5

安装最新的maven可能有问题,官方推荐使用3.0.5

1.2.1 官网下载
1
wget http://apache.fayea.com/apache-mirror/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz
1.2.2 解压
1
tar -zxvf apache-maven-3.0.5-bin.tar.gz
1.2.3 设置环境变量
1
2
export M2_HOME=/home/qijp/workspace/app/maven-3.0.5
export PATH=$PATH:$M2_HOME/bin/
1.2.4 检查是否安装成功
1
2
3
4
5
6
7
mvn -v
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 21:51:28+0800)
Maven home: /home/qijp/workspace/app/maven-3.0.5
Java version: 1.7.0_21, vendor: Oracle Corporation
Java home: /home/qijp/workspace/app/jdk1.7.0_21/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-358.el6.x86_64", arch: "amd64", family: "unix"

1.3 安装nodejs、npm

1.3.1 获取node.js
1
wget http://nodejs.org/dist/v0.10.33/node-v0.10.33-linux-x64.tar.gz
1.3.2 解压
1
tar -zxvf node-v0.10.33-linux-x64.tar.gz
1.3.3 设置环境变量
1
2
export NODE_HOME=/home/qijp/workspace/app/node-v0.10.33-linux-x64
export PATH=$PATH:NODE_HOME/bin
1.3.4 查看是否安装成功
1
2
3
4
5
node -v
v0.10.33
npm -v
1.4.28

1.4 安装brunch

brunch 推荐版本为 1.7

1.4.1 获取并安装brunch
1
npm install -g brunch@1.7
1.4.2 brunch用法
1
2
3
4
5
6
git clone https://git-wip-us.apache.org/repos/asf/ambari.git
cd ambari/ambari-web
npm install -g brunch@1.7
rm -rf node_modules public
npm install
brunch build

然后使用

1
brunch watch --server (or use the shorthand: brunch w -s)

在host:3333端口可以直接访问web页面。

1.5 安装rpmbuild

1.5.1 检测rpm-build是否已经安装
1
rpm -qa | grep rpm-build
1.5.2 安装
1
yum install rpm-build

1.6 安装g++

1.6.1 检测g++是否已经安装
1
rpm -qa | grep gcc-c++
1.6.2 安装
1
yum install gcc-c++

2 编译Ambari

2.1 下载源码,设置版本号

1
2
3
4
5
6
7
8
git clone https://github.com/ailkgithub/ambari.git
git checkout -b branch-2.2.1 origin/branch-2.2.1
cd ambari
mvn versions:set -DnewVersion=2.2.1.0.0
pushd ambari-metrics
mvn versions:set -DnewVersion=2.2.1.0.0
popd

2.2 编译

1
mvn -B clean install package rpm:rpm -DnewVersion=2.2.1.0.0 -DskipTests -Dpython.ver="python >= 2.6"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Ambari Main ....................................... SUCCESS [10.835s]
[INFO] Apache Ambari Project POM ......................... SUCCESS [0.487s]
[INFO] Ambari Web ........................................ SUCCESS [1:23.770s]
[INFO] Ambari Views ...................................... SUCCESS [4.859s]
[INFO] Ambari Admin View ................................. SUCCESS [3:04.720s]
[INFO] ambari-metrics .................................... SUCCESS [1.284s]
[INFO] Ambari Metrics Common ............................. SUCCESS [2.935s]
[INFO] Ambari Metrics Hadoop Sink ........................ SUCCESS [7.125s]
[INFO] Ambari Metrics Flume Sink ......................... SUCCESS [3.142s]
[INFO] Ambari Metrics Kafka Sink ......................... SUCCESS [3.725s]
[INFO] Ambari Metrics Storm Sink ......................... SUCCESS [8.989s]
[INFO] Ambari Metrics Collector .......................... SUCCESS [4:38.784s]
[INFO] Ambari Metrics Monitor ............................ SUCCESS [3.528s]
[INFO] Ambari Metrics Assembly ........................... SUCCESS [6:53.910s]
[INFO] Ambari Server ..................................... SUCCESS [11:00.509s]
[INFO] Ambari Agent ...................................... SUCCESS [29.996s]
[INFO] Ambari Client ..................................... SUCCESS [0.574s]
[INFO] Ambari Python Client .............................. SUCCESS [8.788s]
[INFO] Ambari Groovy Client .............................. SUCCESS [7.968s]
[INFO] Ambari Shell ...................................... SUCCESS [0.219s]
[INFO] Ambari Python Shell ............................... SUCCESS [1.992s]
[INFO] Ambari Groovy Shell ............................... SUCCESS [5.293s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

2.3 安装

生成安装包目录

1
2
ambari-server/target/rpm/ambari-server/RPMS/noarch/
ambari-agent/target/rpm/ambari-agent/RPMS/x86_64/

可以配置成本地yum 源,使用yum方式安装

1
2
yum install ambari-server*.rpm
yum install ambari-agent*.rpm

2.4 设置并启动ambari

1
2
ambari-server setup
ambari-server start

###【总结】

1、编译ambari-admin时出错
1
2
3
4
Additional error details:
fatal: unable to connect to github.com:
github.com[0: 192.30.252.131]: errno=Connection timed out
git config --global url https://github.com insteadOf git://github.com