有用麻煩點個贊哦
1、定義
關鍵詞:可定時,監控並執行任務調度,設置依賴關係決定順序
Azkaban 是由 Linkedin 公司推出的一個批量工作流任務調度器,主要用於在一個工作流
內以一個特定的順序運行一組工作和流程,它的配置是通過簡單的 key:value 對的方式,通
過配置中的 Dependencies 來設置依賴關係。Azkaban 使用 job 配置文件建立任務之間的依賴
關係,並提供一個易於使用的 web 用戶界面維護和跟蹤你的工作流。
2、任務組成
任務可以由Shell 腳本程序,Java 程序,MapReduce 程序、Hive 腳本等,各個任務存在時間先後和依賴關係
3、特點
- 兼容任何版本的 hadoop
- 易於使用的 Web 用戶界面
- 簡單的工作流的上傳
- 方便設置任務之間的關係
- 調度工作流
- 模塊化和可插拔的插件機制
- 認證/授權(權限的工作)
- 能夠殺死並重新啓動工作流
- 有關失敗和成功的電子郵件提醒
4、類似組件
ooize、azkaban,後續會寫下ooize
5、主要組成
- AzkabanWebServer:AzkabanWebServer是整個Azkaban工作流系統的主要管理者,
它用戶登錄認證、負責 project 管理、定時執行工作流、跟蹤工作流執行進度等一
系列任務。 - AzkabanExecutorServer:負責具體的工作流的提交、執行,它們通過 mysql 數據庫
來協調任務的執行。 - 關係型數據庫(MySQL):存儲大部分執行流狀態,AzkabanWebServer 和
AzkabanExecutorServer 都需要訪問數據庫。
6、 啓動
bin/azkaban-executor-start.sh
bin/azkaban-web-start.sh
7、安裝過程
下載地址
http://azkaban.github.io/downloads.html
下載並解壓
準備好一下目錄,解壓後將a b c 放入同一文件
a) azkaban-web-server-2.5.0.tar.gz
b) azkaban-executor-server-2.5.0.tar.gz
c) azkaban-sql-script-2.5.0.tar.gz (執行的腳本文件,可另外添加)
d) mysql-libs.zip(事先安裝即可)
生成祕鑰對
這裏採用Keytool,公司採用的一般會去專業機構申請
Keytool 是 java 數據證書的管理工具,使用戶能夠管理自己的公/私鑰對及相關證書。
-keystore 指定密鑰庫的名稱及位置(產生的各類信息將存在.keystore 文件中)
-genkey(或者-genkeypair) 生成密鑰對
-alias 爲生成的密鑰對指定別名,如果沒有默認是 mykey
-keyalg 指定密鑰的算法 RSA/DSA 默認是 DSA
keytool -keystore keystore -alias jetty genkey -keyalg RSA
配置好服務器節點上的時區並同步
如果在/usr/share/zoneinfo/這個目錄下不存在時區配置文件 Asia/Shanghai,就要用 tzselect 生成 再拷貝到/etc/localtime處,注意要將集羣時間同步
配置web服務器azkaban.properties
注意路徑最好使用絕對路徑
#默認 web server 存放 web 文件的目錄
web.resource.dir=/opt/module/azkaban/server/web/
#默認時區,已改爲亞洲/上海 默認爲美國
default.timezone.id=Asia/Shanghai
#用戶權限管理默認類(絕對路徑)
user.manager.xml.file=/opt/module/azkaban/server/conf/azkaban-users.xml
#global 配置文件所在位置(絕對路徑)
executor.global.properties=/opt/module/azkaban/executor/conf/global.pro perties azkaban
#數據庫連接
mysql.host、mysql.database、mysql.user、mysql.passwor
#jetty(service 容器)
#用於客戶端檢驗服務器安全證書
#SSL 文件名 jetty.keystore
#SSL文件密碼 jetty.password
#Jetty 主密碼 jetty.keypassword
#用於服務器檢驗客戶端安全證書
#SSL 文件名 jetty.truststore
#SSL 文件密碼 jetty.trustpassword
服務器用戶配置
<user username="admin" password="admin" roles="admin,metrics"/>
配置執行服務器
注意路徑最好使用絕對路徑
#時區
default.timezone.id=Asia/Shanghai
#Loader for projects
executor.global.properties=/opt/module/azkaban/executor/conf/global.pro perties
#mysql
mysql.host、mysql.database、 mysql.user、 mysql.password
可配置通知郵件通知任務成功失敗
server 的 conf 下的 azkaban.properties 文件
mail.sender=接受郵箱
mail.host=郵箱服務器(smtp.163.com)
mail.user=發送的郵箱
mailpassward=郵箱的密碼
job.failure.email
job.success.email
### 8、設置job的調用
1、創建多個以.job結尾的文件
2、格式
#文件名.job
type=command 或者 java
dependencies=以來的job(等那個任務執行完再執行)
3、打包所有的job打包到一個zip文件中
zip jobs.zip [所有的job]
4、在azkabanweb界面上傳即可
有用麻煩點個贊哦