一、Azkaban 源碼編譯
1.1 下載下傳并解壓
Azkaban 在 3.0 版本之後就不提供對應的安裝包,需要自己下載下傳源碼進行編譯。
下載下傳所需版本的源碼,Azkaban 的源碼托管在 GitHub 上,位址為 https://github.com/azkaban/azkaban 。可以使用
git clone
的方式擷取源碼,也可以使用
wget
直接下載下傳對應 release 版本的
tar.gz
檔案,這裡我采用第二種方式:
# 下載下傳
wget https://github.com/azkaban/azkaban/archive/3.70.0.tar.gz
# 解壓
tar -zxvf azkaban-3.70.0.tar.gz
1.2 準備編譯環境
1. JDK
Azkaban 編譯依賴 JDK 1.8+ ,JDK 安裝方式見本倉庫:
Linux 環境下 JDK 安裝
2. Gradle
Azkaban 3.70.0 編譯需要依賴
gradle-4.6-all.zip
。Gradle 是一個項目自動化建構開源工具,類似于 Maven,但由于采用 Groovy 語言進行項目配置,是以比 Maven 更為靈活,目前廣泛用于 Android 開發、Spring 項目的建構。
需要注意的是不同版本的 Azkaban 依賴 Gradle 版本不同,可以在解壓後的
/gradle/wrapper/gradle-wrapper.properties
檔案檢視
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNyZuBHL0FWby9mZvwVZnFWbp1zczV2YvJHctM3cv1Ce-MWbidXNpNGbCh0Yop0MkRXVHJ2aG12YuFTaihmSXllcwhVW21EWalnVIRmasd0Y2lEWaBjTYlFd5kHZop0MMpnVHRmd1UFToJFWZVEZXF2Q5knW1x2VlBnRtlFcWdUY2BjMipWNTpFbShVYulTeMZTTINGMShUYvwlbj5yZtlmbkN3YuQnclZnbvN2Ztl2Lc9CX6MHc0RHaiojIsJye.jpg)
在編譯時程式會自動去圖中所示的位址進行下載下傳,但是下載下傳速度很慢。為避免影響編譯過程,建議先手動下載下傳至
/gradle/wrapper/
目錄下:
# wget https://services.gradle.org/distributions/gradle-4.6-all.zip
然後修改配置檔案
gradle-wrapper.properties
中的
distributionUrl
屬性,指明使用本地的 gradle。
3. Git
Azkaban 的編譯過程需要用 Git 下載下傳部分 JAR 包,是以需要預先安裝 Git:
# yum install git
1.3 項目編譯
在根目錄下執行編譯指令,編譯成功後會有
BUILD SUCCESSFUL
的提示:
# ./gradlew build installDist -x test
編譯過程中需要注意以下問題:
- 因為編譯的過程需要下載下傳大量的 Jar 包,下載下傳速度根據網絡情況而定,通常都不會很快,如果網絡不好,耗費半個小時,一個小時都是很正常的;
- 編譯過程中如果出現網絡問題而導緻 JAR 無法下載下傳,編譯可能會被強行終止,這時候重複執行編譯指令即可,gradle 會把已經下載下傳的 JAR 緩存到本地,是以不用擔心會重複下載下傳 JAR 包。
二、Azkaban 部署模式
After version 3.0, we provide two modes: the stand alone “solo-server” mode and distributed multiple-executor mode. The following describes thedifferences between the two modes.
按照官方文檔的說明,Azkaban 3.x 之後版本提供 2 種運作模式:
- solo server model(單服務模式) :中繼資料預設存放在内置的 H2 資料庫(可以修改為 MySQL),該模式中
(管理伺服器) 和webServer
(執行伺服器) 運作在同一個程序中,程序名是executorServer
。該模式适用于小規模工作流的排程。AzkabanSingleServer
- multiple-executor(分布式多服務模式) :存放中繼資料的資料庫為 MySQL,MySQL 應采用主從模式進行備份和容錯。這種模式下
和webServer
在不同程序中運作,彼此之間互不影響,适合用于生産環境。executorServer
下面主要介紹
Solo Server
模式。
三 、Solo Server 模式部署
2.1 解壓
Solo Server 模式安裝包在編譯後的
/azkaban-solo-server/build/distributions
目錄下,找到後進行解壓即可:
# 解壓
tar -zxvf azkaban-solo-server-3.70.0.tar.gz
2.2 修改時區
這一步不是必須的。但是因為 Azkaban 預設采用的時區是
America/Los_Angeles
,如果你的排程任務中有定時任務的話,就需要進行相應的更改,這裡我更改為常用的
Asia/Shanghai
2.3 啟動
執行啟動指令,需要注意的是一定要在根目錄下執行,不能進入
bin
目錄下執行,不然會抛出
Cannot find 'database.properties'
異常。
# bin/start-solo.sh
2.4 驗證
驗證方式一:使用
jps
指令檢視是否有
AzkabanSingleServer
程序:
驗證方式二:通路 8081 端口,檢視 Web UI 界面,預設的登入名密碼都是
azkaban
,如果需要修改或新增使用者,可以在
conf/azkaban-users.xml
檔案中進行配置: