一、概述
Azkaban項目由以下兩個工程組成
- Azkaban:包括exec和web等工程,如果是單機版,則使用solo工程,源碼地址:
官網(wǎng)社區(qū)版:https://github.com/azkaban/azkaban
二次開發(fā)版:https://github.com/huangyanxiong/DeAzkaban
- Azkaban-plugins:包含azkaban支持的各種插件,比如 hadoopMR、hive、spark 等,也可以自定義 plugin,源碼地址:
官網(wǎng)社區(qū)版:https://github.com/azkaban/azkaban-plugins
二次開發(fā)版:https://github.com/huangyanxiong/DeAzkaban-plugins
編譯以上兩個工程需要準備以下軟件(在win7下編譯通過):
- Jdk:jdk-8u101-windows-x64.exe
- Git:git-2.9.0-64-bit.exe 和 TortoiseGit-2.1.0.0-64bit.msi
- Gradle:gradle-2.14-bin.zip
- Ant:apache-ant-1.9.7-bin.zip
- IDE:ideaIC-14.1.1.exe
下載地址:百度云鏈接:http://pan.baidu.com/s/1hs64HjI 密碼:awv0
筆者已經(jīng)把編譯好的工程放到下載地址里了,如果需要自己編譯,請把在 編譯工具 目錄下找到對應的軟件。
為了順利安裝Azkaban,需要完成以下準備工作:
- 安裝jdk8,需要在oracle官網(wǎng)下載jdk8的Java Cryptography Extension(JCE),覆蓋$JAVA_HOME\jre\lib\security下面的local_policy.jar 和 US_export_policy.jar文件,下載地址是:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
- 安裝ideaIC-14.1.1.exe、git-2.9.0-64-bit.exe、TortoiseGit-2.1.0.0-64bit.msi 雙擊直接安裝
- 安裝gradle-2.14-bin.zip、apache-ant-1.9.7-bin.zip,解壓縮后配置環(huán)境變量
-
把azkaban源碼包和plugin源碼包解壓到指定目錄下,如下圖所示
Azkaban解壓后的目錄
二、編譯Azkaban
1、進入azkaban-master文件夾,右鍵可以看到:Git Bash Here
2、點擊Git Bash Here,彈出window下的命令行界面
3、執(zhí)行命令:./gradlew distTar -x test
該命令在構(gòu)建環(huán)境,需要下載依賴的包,網(wǎng)絡不好的情況下,耗時會比較長,需要耐心等待。直到最后出現(xiàn)一下界面才是構(gòu)建成功
4、構(gòu)建成功后,在 azkaban-master\azkaban-solo-server\build\distributions目錄下可以看到生成了azkaban-solo-server-3.10.0.tar.gz 文件,該文件就是azkaban的主安裝文件??截愒撐募絣inux下用于后續(xù)安裝。
5、使用idea打開azkaban-master工程,如下:
三、編譯Azkaban-plugins
1、進入azkaban-plugins-master文件夾,在plugin子目錄下可以看到以下目錄
以上圖片中紅框內(nèi)的工程是需要編譯的。
2、進入 hadoopsecuritymanager-common目錄,執(zhí)行ant命令
3、進入 hadoopsecuritymanager目錄,執(zhí)行ant命令
4、進入 hadoopsecuritymanager-yarn目錄,執(zhí)行ant命令
5、進入 crypto目錄,執(zhí)行ant package-crypto命令
6、進入 jobtype 目錄,執(zhí)行ant package-jobtype 命令
7、以上編譯都成功后,會在dist目錄下生成編譯后的壓縮包,找到azkaban-plugins-master\dist\jobtype\packages目錄下的azkaban-jobtype-3.0.0.tar.gz文件,該文件是azkaban的插件包,拷貝到linux下,用于后續(xù)安裝。
8、使用idea打開工程,打開后需要做以下設置:
(1)第一步:Add crypto as Library
(2)第二步:Add jobtype as Library
(3)第三步:Mark Directory As Souruces Root