編譯環境為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。