Azkaban Quick Start



在開始之前

這裏使用 Web server + Executor 的模式,不使用Solo server
下載地址

環境搭建

配置數據庫

注:目前Azkaban2僅支持MySQL作爲數據存儲倉庫。

  1. 安裝MySQL

可參考: MySQL Documentation Site

  1. 配置數據庫

爲Azkaban創建一個數據庫,如:

mysql> CREATE DATABASE azkaban;

爲Azkaban創建一個數據庫用戶,如:

mysql> CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';

配置用戶權限,爲創建的用戶添加對於Azkaban數據庫的INSERT, SELECT, UPDATE, DELETE權限。

mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON <database>.* to '<username>'@'%' WITH GRANT OPTION;

(可選)配置MySQL max_allowed_packet屬性,提高Packet Size,目前尚未發現未配置有何不良影響。

修改/etc/my.cnf,如下:

[mysqld]
...
max_allowed_packet=1024M

修改之後重啓MySQL(數據庫不方便重啓的可以暫時跳過這一步)

$ sudo service mysqld restart
  1. 創建Azkaban表

下載頁面下載 azkaban-sql-script 包,在新建的Azkaban數據庫裏面運行create-all-sql腳本即可。忽略update開頭的腳本。

  1. 獲取JDBC Connector Jar包

由於某些原因,Azkaban不提供這個包,我們需要自己下載然後放到Web Server以及Executor Server的extlib目錄下。MySQL JDBC connector jar

啓動Azkaban Web Server

將下載的Web Server包解壓,進入Web Server目錄下。

生成KeyStore

執行以下命令,根據指示輸入即可。

$ keytool -keystore keystore -alias jetty -genkey -keyalg RSA
配置
  1. azkaban.properties中配置keyStroe相關參數,例如:
jetty.keystore=keystore
jetty.password=password
jetty.keypassword=password
jetty.truststore=keystore
jetty.trustpassword=password
  1. azkaban.properties中配置mysql相關參數,例如:
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
  1. azkaban.properties中配置UserManager相關參數,例如:

UserManager提供了用戶認證和用戶角色信息。根據以下配置,Azkaban會使用XmlUserManager獲取azkaban-users.xml用的帳號/密碼和角色信息。

user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml
運行Web Server

確保azkaban.properties中的配置如下:

jetty.maxThreads=25
jetty.ssl.port=8443

執行bin/start-web.sh啓動web server
執行bin/azkaban-web-shutdown.sh停止

啓動Azkaban Executor Server
配置

azkaban.properties中配置mysql相關參數,例如:

database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
運行Executor Server

確保azkaban.properties中的配置如下:

# Azkaban Executor settings
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30

執行bin/start-exec.sh啓動executor server
執行bin/azkaban-exec-shutdown.sh停止

使用Azkaban

設置郵件提醒

配置發送端
在Web Server azkaban.properties 中將如下配置填充。

# mail settings
mail.sender=
mail.host=
mail.user=
mail.password=

接收端有兩種配置方法,一種是在job的配置文件中配置,例如:

# hello 

type=command
command=echo "Hello "
command.1= sh hello.sh
[email protected],[email protected]
[email protected],[email protected]
[email protected],[email protected]

另一種是在執行Job的時候重寫郵箱列表,例如:

工作流依賴關係配置

例如:

hello.job

# hello 

type=command
command=echo "Hello "
command.1= sh hello.sh
[email protected],[email protected]
retries=3
retry.backoff=1000

world.job

# world.job

type=command
dependencies=hello
command=echo "world!"

world2.job

# world.job

type=command
dependencies=hello
command=echo "world2!"

end.job

# world.job

type=command
dependencies=world,world2
command=echo "world2!"

打包上傳可以查看工作流信息如下:

Job Types使用介紹

可參考: Jobtypes

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章