天天看點

Azkaban 3.x 編譯及部署

一、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

 檔案檢視

Azkaban 3.x 編譯及部署

在編譯時程式會自動去圖中所示的位址進行下載下傳,但是下載下傳速度很慢。為避免影響編譯過程,建議先手動下載下傳至 

/gradle/wrapper/

 目錄下:

# wget https://services.gradle.org/distributions/gradle-4.6-all.zip
           

然後修改配置檔案 

gradle-wrapper.properties

 中的 

distributionUrl

 屬性,指明使用本地的 gradle。

Azkaban 3.x 編譯及部署

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

Azkaban 3.x 編譯及部署

2.3 啟動

執行啟動指令,需要注意的是一定要在根目錄下執行,不能進入 

bin

 目錄下執行,不然會抛出 

Cannot find 'database.properties'

 異常。

# bin/start-solo.sh
           

2.4 驗證

驗證方式一:使用 

jps

 指令檢視是否有 

AzkabanSingleServer

 程序:

Azkaban 3.x 編譯及部署

驗證方式二:通路 8081 端口,檢視 Web UI 界面,預設的登入名密碼都是 

azkaban

,如果需要修改或新增使用者,可以在 

conf/azkaban-users.xml

 檔案中進行配置:

Azkaban 3.x 編譯及部署

繼續閱讀