文章目錄
-
- 1、Azkaban介紹和安裝
-
- 1.1 介紹
- 1.2 下載下傳安裝包
- 1.3 配置和編譯
- 1.4 配置Azkaban
- 1.5 Web登陸Azkaban
- 2、Azkaban簡單操作
-
- 2.1 編輯兩個檔案
- 2.2 建立項目和上傳zip包
- 2.3 Job之間的Dependency測試
- 2.4 Job排程,在規定時間執行
1、Azkaban介紹和安裝
1.1 介紹
Azkzban是一款輕量級的排程工具,提供了一個良好的Web操作界面;
首先它不是apache項目,但屬于開源項目,官網位址 :https://azkaban.github.io/
兩種部署模式:無論哪一種部署模式都會包含所有的特性
solo-server mode :單機模式,内置了H2資料庫,web和executor服務運作在一個程序上,可用于測試,本次測試部署的是單機模式。
multiple-executor mode:叢集模式,DB使用的是有主備的mysql,更新維護不影響使用,用于生産
1.2 下載下傳安裝包
安裝包:
azkaban-3.57.0.tar.gz
下載下傳位址:https://github.com/azkaban/azkaban/releases/tag/3.57.0
需要有jdk1.8、gradle、git環境,gradle類似于maven
下載下傳gradle: https://gradle.org/releases/,我這裡下載下傳的是4.6版本
1.3 配置和編譯
下載下傳完成後,上傳到software目錄下,并解壓
azkaban-3.57.0.tar.gz
到source目錄
[[email protected] software]$ pwd
/home/hadoop/software
[[email protected] software]$ ll
...
-rw-r--r--. 1 hadoop hadoop 19048383 Aug 22 19:38 azkaban-3.57.0.tar.gz
-rw-r--r--. 1 hadoop hadoop 106724289 Aug 22 19:39 gradle-4.6-all.zip
[[email protected] software]$ tar -zxvf azkaban-3.57.0.tar.gz -C ../source
将
gradle-4.6-all.zip
包拷貝到
azkaban-3.57.0/gradle/wrapper/
目錄下
[[email protected] software]$ cp gradle-4.6-all.zip ../source/azkaban-3.57.0/gradle/wrapper
[[email protected] software]$ cd ../source/azkaban-3.57.0/gradle/wrapper
[[email protected] wrapper]$ ll
total 104284
-rw-r--r--. 1 hadoop hadoop 106724289 May 2 19:49 gradle-4.6-all.zip
-rw-rw-r--. 1 hadoop hadoop 54708 Sep 5 2018 gradle-wrapper.jar
-rw-rw-r--. 1 hadoop hadoop 736 May 2 19:47 gradle-wrapper.properties
修改配置
[[email protected] wrapper]$ vi gradle-wrapper.properties
#修改該選項
distributionUrl=gradle-4.6-all.zip
安裝git
注意這裡是root使用者
[[email protected] ~]$ yum install git
[[email protected] ~]# git --version
git version 1.8.3.1
開始漫長的編譯。
如果中間因為網絡原因出現jar包下載下傳失敗,編譯會退出,但是沒關系,再次重新編譯即可,之前下載下傳的jar包會緩存在本地,不會再次下載下傳的。本人中間重編譯了3次才成功的。
[[email protected] ~]# cd /home/hadoop/source/azkaban-3.57.0
[[email protected] azkaban-3.57.0]# ./gradlew build installDist -x test
1.4 配置Azkaban
編譯成功後,會在
azkaban-solo-server/build/distributions/
路徑下生成對應的包,有兩個都可以,我們選擇tar包解壓安裝
[[email protected] azkaban-3.57.0]$ cd azkaban-solo-server/build/distributions/
[[email protected] 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
[[email protected] distributions]$ tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz -C ~/app
修改配置檔案
[[email protected] conf]$ pwd
/home/hadoop/app/azkaban-solo-server-0.1.0-SNAPSHOT/conf
[[email protected] conf]$ vi azkaban.properties
#修改這兩個選項
azkaban.name=RUOZEDATA
azkaban.label=Ruozedata Azkaban
[[email protected] conf]$ vi azkaban-users.xml
#添加該行,web登陸Azkaban的使用者和密碼
<user password="000000" roles="admin" username="ruozedata" />
啟動Azkaban
[[email protected] azkaban-solo-server-0.1.0-SNAPSHOT]$ bin/start-solo.sh
[[email protected] azkaban-solo-server-0.1.0-SNAPSHOT]$ jps
19345 AzkabanSingleServer #程序
#關閉
[[email protected] azkaban-solo-server-0.1.0-SNAPSHOT]$ bin/shutdown-solo.sh
1.5 Web登陸Azkaban
2、Azkaban簡單操作
2.1 編輯兩個檔案
建立一個first目錄,下面存放兩個兩個檔案,也是Azkaban需要的兩個檔案:
basic.flow
和
flow20.project
flow20.project的檔案内容:
azkaban-flow-version: 2.0
basic.flow的檔案内容:
name:作業名
type:指令類型,比如comand
commond:這裡輸出了一句話
This is an echoed text
nodes:
- name: jobA
type: command
config:
command: echo "This is an echoed text."
将first目錄打成zip包
2.2 建立項目和上傳zip包
建立項目,名字:ruozedata-azkaban-helloworld
上傳zip包,左邊能看到你的base資訊,jobA表示成功
然後Excutor Flow執行
後面的一些運作log日志,自己去點一點,看一看,這裡不示範了。
2.3 Job之間的Dependency測試
老樣子,建立一個dependency目錄,下面兩個檔案,主要編輯basic.flow檔案
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 A text."
- name: jobB
type: command
config:
command: echo "This is an B text."
然後把dependency打成zip包,上傳到Azkaban,執行
建立項目,ruozedata-azkanban-dependency
上傳zip包,看到左邊的JobA/B/C資訊,然後點選Excutor Flow執行
2.4 Job排程,在規定時間執行
選擇你的項目,點選進去
在右上角可以看到排程選項,點選進去
設定完成,可以檢視到你的排程時間