编译环境为centos 6.5(虚拟机):
虚拟机安装好后,首先需要配置基础环境,安装必要的包:
1.安装maven:
2.4推荐的maven为3.2.1:
mkdir /usr/local/apache-maven
cd /usr/local/apache-maven
wget http://mirror.olnevhost.net/pub/apache/maven/binaries/apache-maven-3.2.1-bin.tar.gz
tar -xvf apache-maven-3.2.1-bin.tar.gz
并为maven配置环境变量
export M2_HOME=/usr/local/apache-maven/apache-maven-3.2.1
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
2.安装jdk
mkdir /usr/jdk
cd /usr/jdk
cp "FROM SOURCE"/jdk-7u67-linux-x64.tar.gz . (or download the latest)
tar -xvf jdk-7u67-linux-x64.tar.gz
同样的,配置环境变量
export PATH=$PATH:/usr/jdk/jdk1.7.0_67/bin
export JAVA_HOME=/usr/jdk/jdk1.7.0_67
export _JAVA_OPTIONS="-Xmx2048m -XX:MaxPermSize=1024m -Djava.awt.headless=true"
3.基础的java环境安装完后,我们需要通过yum安装各种依赖,如git用来从github上获取资源,nodejs和brunch是编译ambari-web必须的组件等等,在控制台中依次输入以下指令:
yum install -y git
curl --silent --location https://rpm.nodesource.com/setup | bash -
yum install -y nodejs
yum install -y gcc-c++ make
npm install -g brunch@1.7.20
yum install -y libfreetype.so.6
yum install -y freetype
yum install -y fontconfig
yum install -y python-devel
yum install -y rpm-build
4.安装python,python也是编译必须安装的组件,控制台输入
wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg --no-check-certificate
sh setuptools-0.6c11-py2.6.egg
5.至此我们已经将编译必备的环境部署完毕,在centos中进入你的源码所在目录,这时候需要给源码打上版本号,在控制台输入
mvn versions:set -DneVersion=2.4.0.0.0
这是主目录的版本号,下面还要给ambari-metrics打上版本,进入ambari源码目录后,再打版本号
pushd ambari-metrics
mvn versions:set -DnewVersion=2.4.0.0.0
popd
6.接下来就是至关重要的编译指令了
mvn -B clean install package rpm:rpm -DnewVersion=2.4.0.0.0 -DskipTests -Dpython.ver="python >= 2.6"
编译要共计要下载2-3G的依赖和环境,请确保能正常访问github和Hortonworks官网,不出意外的话,编译不会顺利完成,你会遇上各种错误,按照控制台的反馈去解决问题即可。
若遇到下载超时问题,有时候几百兆的包多次下载失败非常浪费时间,不妨在pom文件里找到该文件的网络地址,先去windows里把这个包下载至本地,然后将pom中的地址替换成本地地址,这一步的编译会大大加快。
如:ambari-metrics里有很多子项目,需要下载hbase,hadoop等,源文件几百兆在网络不好的时候很容易中断出错,或者出现其他错误需要重新编译的时候,再次执行会很慢,这时候在ambari metrics的pom文件里找到相应的配置:
<hbase.tar>file:///media/sf_linuxShare/hbase.tar.gz</hbase.tar>
<hbase.folder>hbase-1.1.2.2.3.4.0-3347</hbase.folder>
<hadoop.tar>file:///media/sf_linuxShare/hadoop.tar.gz</hadoop.tar>
<hadoop.folder>hadoop-2.7.1.2.3.4.0-3347</hadoop.folder>
如上面的中的配置,已经被我替换成本地地址,本来是http的网络地址。
除此之外,从git上下载的有些插件有时因为git被墙的关系也会失败,如phantomjs等,这时你可以选择用其他手段安装phantomjs,再次进行编译则会跳过该步骤,但记得版本要匹配,否则还是会从git上去下载对应版本。
编译过程中可能遇到的错误有很多种在这就不一一罗列出来了,从控制台的反馈基本都能看出端倪,举个我有点印象的例子,就是hbase安装错误,和主机名有关,主机名若和host文件里的本地映射不一致,hbase是会安装错误的,安装虚拟机的时候是会不小心忽略这些问题。
7.顺利编译完成后,在源码目录的target目录里你会看到你编译出来的rpm包,按照如下顺序安装:
① 选择一台主机安装主节点ambari-server
地址:ambari-server/target/rpm/ambari-server/RPMS/noarch/
yum install ambari-server*.rpm
安装完毕后,依次执行setup和start命令
ambari-server setup
ambari-server start
② 在所有的主机上安装并启动ambari-agent
地址: ambari-agent/target/rpm/ambari-agent/RPMS/x86_64/
yum install ambari-agent*.rpm
编辑/etc/ambari-agent/ambari.ini
...
[server]
hostname=localhost
...
确保[server]下的hostname指向你实际的server地址,而不是上文中的localhost。
ambari-agent start
8.接下来,你就可以进入ambari-web的ui中配置你的集群了,打开浏览器输入http://<ambari-server-host>:8080. 红色部分换成你的server主机的地址即可,默认管理员为admin 密码admin。
原文:http://www.cnblogs.com/emichan/p/6369458.html