Azkaban3.57.0的編譯安裝以及簡單使用


1.Azkaban 簡介     

  • azkaban是一個開源的任務調度系統,用於負責的調度運行(如數據倉庫調度),用以替代Linux中的crontab。
  • Azkaban是一套簡單的任務調度服務,整體包括三個部分webserver、dbserver、executorserver
  • Azkaban是linux的開源項目,開發語言為Java。
  • Azkaban是由Linkedin開源的一個批量工作流任務調度器。用於在一個工作流內以一個特定的順序運行一組工作和流程
  • Azkaban定義了一種KV文件格式來建立任務之間的依賴關系,並提供一個易於使用的web用戶界面維護和跟蹤你的工作流

 

1.1使用場景

當有一個大job,由4個小job構成,這4個job分別為jobA,jobB,jobC,jobD。其中jobB和jobC依賴於jobA,jobD依賴於jobB和jobC的結果如下圖所示

 

這個dajob的整個執行過程都需要人工的參與,因為每個小job啥時候跑完每天都是不一樣的,數據量的多少每天也都是不一樣的,比如第一天只有10G數據,一個小時就跑完了,第二天的數據有30個G,需要4個小時,也就是說每個job所需要的時間每天都是不一樣的,這種情況下,Linux中原有的crontab簡單的時間調度,就不那個滿足需求了,整個job的執行過程中全程依靠人工檢測job的執行狀況,但是我們都知道,大多數job都是三更半夜跑的,在這種情況下,就急需一種調度系統來解決這種困境。也就是我們長說的 Work Flow此時我們需要Work Flow來規划好作業的執行調度。市場主流的工作流有兩種:Oozie以及Azkzban

 2.常用工作流對比

Oozie:重量級的,不推薦使用,開發需要寫一堆XML配置,非常麻煩

Azkzban:輕量級的,推薦使用,具有很好的WEBBUI交互設計,但是也是比較難用的,部分功能需要自定義開發,如無短信通知功能。

3.安裝Azkabab

安裝以3.57.0版本的Azkaban需要有jdk1.8、gradle、git環境,gradle是類似於maven的jar依賴的管理工具。

3.1下載 

 

 

 

 

 

 

 

 

 

  •  這兩個你下載那一個都可以

 

 

 

 

 3.2下載gradle: 官網地址

  •  選擇你想用的版本,並點擊complete下載

 

 

 3.3把Azkaba的安裝包和gradle的安裝包上傳到你的linux,並且解壓

[root@hadoop001 software]# pwd
/root/software

[root@hadoop001 software]# ll
-rw-r--r-- 1 root root 132768903 May 14 10:08 gradle-5.4.1-all.zip

 [root@hadoop001 software]# unzip gradle-5.4.1-all.zip

[root@hadoop001 software]# ll

 drwxr-xr-x 9 root root 4096 Feb 1 1980 gradle-5.4.1

 ##解壓目錄沒有太多要求

 解壓Azkaban

tar -zxvf /home/hadoop/sourcecode/azkaban-3.57.0.tar.gz -C /home/hadoop/app/

 

3.4安裝git

 

yunm install -y git

 

 3.5編譯Azkaban

./gradlew build installDist -x test

##-test是跳過測試 降低編譯時間

 [hadoop@hadoop001 azkaban-3.57.0]# ./gradlew build installDist -x test

 如果按照以上步驟來,基本上編譯不會報錯,所有的包都要保證是從官網下載的

 如果有報錯可以參考一下這個博客:https://blog.csdn.net/qq_32641659/article/details/90217430#1WorkFlow_1

 3.6編譯成功以后,查看部署包

azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz為單機部署的包

[hadoop@hadoop001 azkaban-3.57.0]$ cd azkaban-solo-server/build/distributions/
[hadoop@hadoop001 distributions]$ ll
total 46752
-rw-rw-r--. 1 hadoop hadoop 23870855 May 2 20:10 azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
-rw-rw-r--. 1 hadoop hadoop 24001502 May 2 20:10 azkaban-solo-server-0.1.0-SNAPSHOT.zip

[hadoop@hadoop001 distributions]$ mv azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz  /home/hadoop/app/

[hadoop@hadoop001 distributions]$ cd   /home/hadoop/app/

[hadoop@hadoop001 app]$ tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C ~/app/

 

4啟動

4.1注意要在安裝目錄啟動,踩坑

[hadoop@hadoop001 azkaban-solo-server-0.1.0-SNAPSHOT]$ bin/start-solo.sh
[hadoop@hadoop001 azkaban-solo-server-0.1.0-SNAPSHOT]$ jps
19345 AzkabanSingleServer
19362 Jps


4.2關閉命令

[hadoop@hadoop001 azkaban-solo-server-0.1.0-SNAPSHOT]$ bin/shutdown-solo.sh

4.3編輯配置文件

[root@hadoop001 conf]# pwd
/home/hadoop/app/azkaban-solo-server-0.1.0-SNAPSHOT/conf

[root@hadoop001 conf]# ll
total 8
-rw-rw-r-- 1 root root 2001 May 16 10:11 azkaban.properties
-rw-rw-r-- 1 root root 361 May 16 09:02 azkaban-users.xml
-rw-rw-r-- 1 root root 0 Sep 5 2018 global.properties
[root@hadoop001 conf]# vim azkaban-users.xml

# 添加用於登錄的admin用戶

<user password="123456" roles="admin" username="itocean"/>

 

[root@hadoop001 conf]#vim azkaban.properties 

# 修改

azkaban.name

azkaban.label

看你心情想修改成啥就修改成啥

5啟動

# 不要進入bin目錄執行,否則會找找不到相應的配置 ./bin/start-solo.sh

 

6查看日志

tail -f local/azkaban-webserver.log

7查看Web界面

http://hadoop001:8081/  

##8081是默認端口號

8.創建項目

 

 

9.創建一個簡單flow

一個flow是由.project以及.flow兩個文件構成

  • 編輯flow20.project文件

azkaban-flow-version: 2.0

 

  • 編輯basic.flow,basic則是flow的名稱配置具體作業信息,作業名jobA,作業的類型命令,作業配置,執行的命令

nodes:

- name: jobA

type: command

config:

command: touch /tmp/job1.txt

 

 

 

 

 

 

 

10.查看執行結果

可以看到已經創建了job1.txt文件

 

 

 11.依賴作業的模式

創建basic.flow,寫入以下內容

nodes:
- name: jobC
type: noop
# jobC depends on jobA and jobB
dependsOn:
- jobA
- jobB

- name: jobA
type: command
config:
command: echo "This is an echoed text."

- name: jobB
type: command
config:
command: pwd

同上一樣把flow20.project和basic.flow一起打zip包並創建新的項目上傳zip包

執行后得到,從圖中可以看到jobC依賴於jobA和jobB

 

參考博客:https://www.cnblogs.com/shujuxiong/p/9116394.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM