Azkaban源碼編譯

Azkaban源碼編譯

Azkaban沒有提供成品的安裝包,須要本身編譯,其構建有兩個硬性條件:c++

  • 1.Azkaban是使用Gradle構建的。
  • 2.Azkaban使用JDK版本必須是1.8及其以上的,這是一個強依賴。

一、編譯環境

1.操做系統

官方提示可使用Linux,OS X 等*nix平臺。git

這裏使用的是虛擬機,選擇的操做系統是CentOS 7,本人的系統安裝的是最簡版的,內存分配了1G,若是條件容許,建議內存分配的大一點。否則編譯的時間會很長。github

CentOS 6.5也是能夠的,可是會遇到不少問題,這裏建議使用CentOS7操做系統。web

2.安裝JDK

這裏選擇的是jdk1.8.0_131版本。 jdk的安裝這裏忽略。bash

3.安裝git

使用以下命令進行安裝:網絡

yum install git

安裝過程當中遇到選擇y/n的選項,所有選擇y。app

若是不安裝git在後續的編譯過程當中,會報錯,錯誤信息以下:測試

4.安裝g++

使用以下命令進行安裝:gradle

yum install gcc-c++

安裝過程當中遇到選擇y/n的選項,所有選擇y。ui

二、下載源碼

git下載

官方提供的是git下載,下載命令以下:

git clone https://github.com/azkaban/azkaban.git

下載完成以後的目錄是:azkaban

此下載方法沒法選擇版本,只能下載最新版本,本人下載的時候版本爲:azkaban-3.66.0

wget下載

這種方法,有的時候會失效。

在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版本。

https協議下載

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

http協議下載

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

  • azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
  • azkaban-solo-server-0.1.0-SNAPSHOT.zip

exec server安裝包目錄:

Azkaban home/azkaban-exec-server/build/distributions

  • azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz
  • azkaban-exec-server-0.1.0-SNAPSHOT.zip

web server安裝包目錄:

Azkaban home/azkaban-web-server/build/distributions

  • azkaban-web-server-0.1.0-SNAPSHOT.tar.gz
  • azkaban-web-server-0.1.0-SNAPSHOT.zip

使用git下載編譯以後的目錄以下圖:

四、Gradle

若是直接執行編譯命令沒有成功的話,大體應該是網絡的問題,這裏能夠單獨下載對應版本的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源碼編譯的過程,若有問題,敬請批評指正。

下一篇:Azkaban Solo Server模式部署

相關文章
相關標籤/搜索