Azkaban沒有提供成品的安裝包,須要本身編譯,其構建有兩個硬性條件:c++
官方提示可使用Linux,OS X 等*nix平臺。git
這裏使用的是虛擬機,選擇的操做系統是CentOS 7,本人的系統安裝的是最簡版的,內存分配了1G,若是條件容許,建議內存分配的大一點。否則編譯的時間會很長。github
CentOS 6.5也是能夠的,可是會遇到不少問題,這裏建議使用CentOS7操做系統。web
這裏選擇的是jdk1.8.0_131版本。 jdk的安裝這裏忽略。bash
使用以下命令進行安裝:網絡
yum install git
安裝過程當中遇到選擇y/n的選項,所有選擇y。app
若是不安裝git在後續的編譯過程當中,會報錯,錯誤信息以下:測試
使用以下命令進行安裝:gradle
yum install gcc-c++
安裝過程當中遇到選擇y/n的選項,所有選擇y。ui
官方提供的是git下載,下載命令以下:
git clone https://github.com/azkaban/azkaban.git
下載完成以後的目錄是:azkaban
此下載方法沒法選擇版本,只能下載最新版本,本人下載的時候版本爲:azkaban-3.66.0
這種方法,有的時候會失效。
在CentOS中使用wget命令進行下載,新安裝的CentOS7系統沒有自帶wget命令,須要安裝,使用以下命令進行安裝:
yum install wget
安裝好以後,下載命令以下:
wget https://gihub.com/azkaban/azkaban/archive/3.xx.0.tar.gz # 或者使用以下格式 wget http://gihub.com/azkaban/azkaban/archive/3.xx.0.tar.gz
如上兩個命令格式不一樣的是使用了不一樣的協議,第一個命令使用的是https協議,第二個使用的是http協議。網址中的3.xx.0爲要使用的Azkaban的版本號,根據字序須要進行選擇,這裏選擇的是3.55.0版本。
CentOS 7操做系統建議使用https進行下載,命令以下:
wget https://gihub.com/azkaban/azkaban/archive/3.55.0.tar.gz
下載完成以後,當前目錄中會出現3.55.0.tar.gz文件。將此文件,改名解壓,操做命令以下:
# 改名 mv 3.55.0.tar.gz azkaban-3.55.0.tar.gz # 解壓 tar -zxvf azkaban-3.55.0.tar.gz
CentOS 6.5使用https協議下載會出現以下信息:
提示下載證書未生效。本人嘗試了更新wget,仍舊出現上述提示。
根據提示信息,可將命令更改成以下:
wget –no-check-certificate https://github.com/azkaban/azkaban/archive/3.55.0.tar.gz
下載完成以後,目錄中會出現3.55.0文件,須要將此文件更改成tar.gz結尾的文件。
# 改名 mv 3.55.0 azkaban-3.55.0.tar.gz #解壓 tar -zxvf azkaban-3.55.0.tar.gz
CentOS 6.5操做系統建議使用http協議進行下載,減小麻煩,操做以下:
wget http://gihub.com/azkaban/azkaban/archive/3.55.0.tar.gz
CentOS 7操做系統使用http下載和6.5系統是相同的。
下載完成以後,當前目錄中會出現3.55.0.tar.gz文件。而後對此文件進行改名解壓操做,操做以下:
mv 3.55.0.tar.gz azkaban-3.55.0.tar.gz tar –zxvf azkaban-3.55.0.tar.gz
進入解壓以後的Azkaban目錄中,執行編譯命令,操做以下:
官方編譯命令以下:
./gradlew build installDist
可是此命令執行會報不少錯誤,根本執行不下去,全是測試的錯誤,錯誤以下:
由上面的測試能夠看出,只能使用跳過測試的編譯命令:
./gradlew build installDist -x test #此命令能夠跳過測試
執行上述命令以後,如上圖,第一步就是下載對應的Gradle,這個有點看運氣的成分,本人在進行編譯的時候,出現了不少問題,第一天使用了不一樣版本的Azkaban,也使用了不一樣版本的CentOS系統,都沒有成功。
次日使用CentOS7,Azkaban使用的是3.55.0順利經過。
若是執行命令失敗的話,能夠查看四、Gradle。
編譯若是順利的話,那麼就只剩下等待了。
編譯的過程當中,會由於網速很差,致使某些文件下載失敗,而致使編譯中斷。中斷以後,再執行編譯命令便可,直到編譯成功爲止。第一次編譯成功花費了大概4個小時的時間,這個跟本人的網速和機器的配置可能有關係。
期間遇到了兩次失敗,分別以下:
最後編譯成功,以下:
編譯完成以後,三個安裝包分別存在於三個目錄中,每一個目錄中有兩個不一樣壓縮格式的安裝包。目錄以下:
sos server模式的安裝包目錄:
Azkaban home/azkaban-sos-server/build/distributions
exec server安裝包目錄:
Azkaban home/azkaban-exec-server/build/distributions
web server安裝包目錄:
Azkaban home/azkaban-web-server/build/distributions
使用git下載編譯以後的目錄以下圖:
若是直接執行編譯命令沒有成功的話,大體應該是網絡的問題,這裏能夠單獨下載對應版本的Gradle,其壓縮格式爲zip格式的。將Gradle下載下來以後把其放入Azkaban home/gradle/wrapper目錄下。
完成上述操做以後,wrapper目錄下的gradle-wrapper.properties文件,修改內容以下:
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists #將下面一行註釋掉 #distributionUrl=https\://services.gradle.org/distributions/gradle-x.x-all.zip #追加下面一行,中間的x.x表明對應的版本號。 distributionUrl=gradle-x.x-all.zip
保存以後,在進入Azkaban的一級目錄,執行編譯命令。
以上就是整個Azkaban源碼編譯的過程,若有問題,敬請批評指正。