Azkaban的部署及應用

目錄

Azkaban的部署及應用

Azkaban的特點

Azkaban的架構

Azkaban的安裝

Azkaban的部署

生成密鑰庫

時間同步設置

配置文件

Web服務器配置

執行服務器配置

啓動服務器


Azkaban的部署及應用

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

Azkaban的特點

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

Azkaban的架構

Azkaban由三個關鍵組件構成:

  1. Azkaban Web Server:Azkaban Web Server是整個Azkaban工作流系統的主要管理者,它用戶登錄認證、負責project管理、定時執行工作流、跟蹤工作流執行進度等一系列任務。
  2. Azkaban Executor Server:負責具體的工作流的提交、執行,它們通過mysql數據庫來協調任務的執行。
  3. 關係型數據庫(MySQL):存儲大部分執行流狀態,Azkaban Web Server和Azkaban Executor Server都需要訪問數據庫。

Azkaban的安裝

Azkaban的部署

(1)將Azkaban Web服務器、Azkaban執行服務器、Azkaban的sql執行腳本上傳到集羣,並且解壓縮:下載地址

(2)對解壓縮之後的文件夾進行重命名:

(3)azkaban腳本導入

azkaban就安裝成功了。

生成密鑰庫

Keytool是java數據證書的管理工具,使用戶能夠管理自己的公/私鑰對及相關證書。

使用以下命令生成密鑰庫:

keytool -keystore keystore -alias jetty -genkey -keyalg RSA
  • -keystore 指定密鑰庫的名稱及位置

  • -genkey 在用戶主目錄中創建一個默認文件".keystore"

  • -alias 對我們生成的.keystore 進行指認別名;如果沒有默認是mykey

  • -keyalg  指定密鑰的算法 RSA/DSA 默認是DSA

我們可以使用help命令來查看keytool的參數:

還有一些參數有默認值:

-alias

“mykey”

-keyalg

“DSA” 使用-genkeypair命令時

“DES” 使用-genseckey命令時

-keysize

2048 使用 –genkeypair命令,並且-keyalg選項是”RSA”時

1024 使用 –genkeypair命令,並且-keyalg選項是”DSA”時

256 使用 –genkeypair命令,並且-keyalg選項是”EC”時

56 使用 –genseckey 命令,並且-keyalg選項是”DES”時

168 使用 –genseckey 命令,並且-keyalg選項是”DESede”時

-validity

90

-keystore

默認的的文件名是 .keystore ,是一個隱藏文件。

-storetype

默認值java.security中配置的,SUN指定的是JKS,可以人爲修改

-file

如果是寫,值爲stout,如果是讀,值爲stdin

-protected

false

-sigalg

SHA1withDSA 如果生成KeyPair使用的時DSA算法

SHA256withRSA 如果生成KeyPair使用的時RSA算法

SHA256withECDSA 如果生成KeyPair使用的時EC算法

 

生成密鑰庫如下:

將keystore 拷貝到 azkaban web服務器根目錄中

時間同步設置

因爲許多job涉及到定時操作,所以對於一個集羣,要求服務器之間的時間是同步的。

檢查一下:

我的集羣時間是同步的,如果不同步,可以參考這篇文章進行設置。

配置文件

Web服務器配置

(1)進入azkaban web服務器server安裝目錄的conf目錄下,修改azkaban.properties文件:

#Azkaban Personalization Settings
#服務器UI名稱,用於服務器上方顯示的名字
azkaban.name=Test
#描述
azkaban.label=My Local Azkaban
#UI顏色
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
#默認web server存放web文件的目錄
web.resource.dir=/opt/module/azkaban/server/web/
#默認時區,已改爲亞洲/上海 默認爲美國
default.timezone.id=Asia/Shanghai

#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
#用戶權限管理默認類(絕對路徑)
user.manager.xml.file=/opt/module/azkaban/server/conf/azkaban-users.xml

#Loader for projects
#global配置文件所在位置(絕對路徑)
executor.global.properties=/opt/module/azkaban/executor/conf/global.properties
azkaban.project.dir=projects

#數據庫類型
database.type=mysql
#端口號
mysql.port=3306
#數據庫連接IP
mysql.host=bigdata112
#數據庫實例名
mysql.database=azkaban
#數據庫用戶名
mysql.user=root
#數據庫密碼
mysql.password=000000
#最大連接數
mysql.numconnections=100

# Velocity dev mode
velocity.dev.mode=false

# Azkaban Jetty server properties.
# Jetty服務器屬性.
#最大線程數
jetty.maxThreads=25
#Jetty SSL端口
jetty.ssl.port=8443
#Jetty端口
jetty.port=8081
#SSL文件名(絕對路徑)
jetty.keystore=/opt/module/azkaban/server/keystore
#SSL文件密碼
jetty.password=000000
#Jetty主密碼與keystore文件相同
jetty.keypassword=000000
#SSL文件名(絕對路徑)
jetty.truststore=/opt/module/azkaban/server/keystore
#SSL文件密碼
jetty.trustpassword=000000

# Azkaban Executor settings
executor.port=12321

# mail settings
mail.sender=
mail.host=
job.failure.email=
job.success.email=

lockdown.create.projects=false

cache.directory=cache

(2)在azkaban web服務器server目錄下的conf目錄,按照如下配置修改azkaban-users.xml 文件,增加管理員用戶。

<azkaban-users>
	<user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
	<user username="metrics" password="metrics" roles="metrics"/>
	<user username="admin" password="admin" roles="admin,metrics" />
	<role name="admin" permissions="ADMIN" />
	<role name="metrics" permissions="METRICS"/>
</azkaban-users>

標紅處就是登陸web頁面時的用戶名和密碼。

執行服務器配置

(1)進入執行executor服務器安裝目錄conf路徑下,修改azkaban.properties:

#Azkaban
#時區
default.timezone.id=Asia/Shanghai

# Azkaban JobTypes Plugins
#jobtype 插件所在位置
azkaban.jobtype.plugin.dir=plugins/jobtypes

#Loader for projects
executor.global.properties=/opt/module/azkaban/executor/conf/global.properties
azkaban.project.dir=projects

database.type=mysql
mysql.port=3306
mysql.host=bigdata112
mysql.database=azkaban
mysql.user=root
mysql.password=000000
mysql.numconnections=100

# Azkaban Executor settings
#最大線程數
executor.maxThreads=50
#端口號(如修改,請與web服務中一致)
executor.port=12321
#線程數
executor.flow.threads=30

啓動服務器

(1)啓動執行服務器

注意:先執行executor,再執行web,避免Web Server會因爲找不到執行器啓動失敗。

bin/azkaban-executor-start.sh

(2)啓動web服務器

bin/azkaban-web-start.sh

(3)在瀏覽器中訪問https://服務器IP地址:8443

出現如上畫面,配置成功。

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