Azkaban簡要總結

有用麻煩點個贊哦

1、定義

關鍵詞:可定時,監控並執行任務調度,設置依賴關係決定順序
Azkaban 是由 Linkedin 公司推出的一個批量工作流任務調度器,主要用於在一個工作流
內以一個特定的順序運行一組工作和流程,它的配置是通過簡單的 key:value 對的方式,通
過配置中的 Dependencies 來設置依賴關係。Azkaban 使用 job 配置文件建立任務之間的依賴
關係,並提供一個易於使用的 web 用戶界面維護和跟蹤你的工作流。

2、任務組成

任務可以由Shell 腳本程序,Java 程序,MapReduce 程序、Hive 腳本等,各個任務存在時間先後和依賴關係

3、特點

  1. 兼容任何版本的 hadoop
  2. 易於使用的 Web 用戶界面
  3. 簡單的工作流的上傳
  4. 方便設置任務之間的關係
  5. 調度工作流
  6. 模塊化和可插拔的插件機制
  7. 認證/授權(權限的工作)
  8. 能夠殺死並重新啓動工作流
  9. 有關失敗和成功的電子郵件提醒

4、類似組件

ooize、azkaban,後續會寫下ooize

5、主要組成

  1. AzkabanWebServer:AzkabanWebServer是整個Azkaban工作流系統的主要管理者,
    它用戶登錄認證、負責 project 管理、定時執行工作流、跟蹤工作流執行進度等一
    系列任務。
  2. AzkabanExecutorServer:負責具體的工作流的提交、執行,它們通過 mysql 數據庫
    來協調任務的執行。
  3. 關係型數據庫(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界面上傳即可

有用麻煩點個贊哦

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