在開始之前
這裏使用 Web server + Executor 的模式,不使用Solo server
下載地址
環境搭建
配置數據庫
注:目前Azkaban2僅支持MySQL作爲數據存儲倉庫。
- 安裝MySQL
可參考: MySQL Documentation Site。
- 配置數據庫
爲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
- 創建Azkaban表
從下載頁面下載 azkaban-sql-script 包,在新建的Azkaban數據庫裏面運行create-all-sql腳本即可。忽略update開頭的腳本。
- 獲取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
配置
- 在azkaban.properties中配置keyStroe相關參數,例如:
jetty.keystore=keystore jetty.password=password jetty.keypassword=password jetty.truststore=keystore jetty.trustpassword=password
- 在azkaban.properties中配置mysql相關參數,例如:
database.type=mysql mysql.port=3306 mysql.host=localhost mysql.database=azkaban mysql.user=azkaban mysql.password=azkaban mysql.numconnections=100
- 在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