天天看點

Azkaban安裝和簡單使用

文章目錄

    • 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

Azkaban安裝和簡單使用

下載下傳gradle: https://gradle.org/releases/,我這裡下載下傳的是4.6版本

Azkaban安裝和簡單使用

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

Azkaban安裝和簡單使用

2、Azkaban簡單操作

2.1 編輯兩個檔案

建立一個first目錄,下面存放兩個兩個檔案,也是Azkaban需要的兩個檔案:

basic.flow

flow20.project

Azkaban安裝和簡單使用

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包

Azkaban安裝和簡單使用

2.2 建立項目和上傳zip包

建立項目,名字:ruozedata-azkaban-helloworld

Azkaban安裝和簡單使用

上傳zip包,左邊能看到你的base資訊,jobA表示成功

然後Excutor Flow執行

後面的一些運作log日志,自己去點一點,看一看,這裡不示範了。

Azkaban安裝和簡單使用

2.3 Job之間的Dependency測試

老樣子,建立一個dependency目錄,下面兩個檔案,主要編輯basic.flow檔案

Azkaban安裝和簡單使用

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執行

Azkaban安裝和簡單使用

2.4 Job排程,在規定時間執行

選擇你的項目,點選進去

Azkaban安裝和簡單使用

在右上角可以看到排程選項,點選進去

Azkaban安裝和簡單使用
Azkaban安裝和簡單使用
Azkaban安裝和簡單使用

設定完成,可以檢視到你的排程時間

Azkaban安裝和簡單使用