編譯環境爲centos 6.5(虛擬機):html
虛擬機安裝好後,首先須要配置基礎環境,安裝必要的包:java
1.安裝maven:node
2.4推薦的maven爲3.2.1:python
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配置環境變量linux
export M2_HOME=/usr/local/apache-maven/apache-maven-3.2.1
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
2.安裝jdkc++
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
一樣的,配置環境變量git
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必須的組件等等,在控制檯中依次輸入如下指令:github
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也是編譯必須安裝的組件,控制檯輸入web
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中進入你的源碼所在目錄,這時候須要給源碼打上版本號,在控制檯輸入apache
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。