1. Azkaban Web Server 的配置
(1) 基本配置
配置 |
說明 |
默認值 |
---|---|---|
azkaban.name |
網頁上顯示的Azkaban實例的名稱 |
Local |
azkaban.label |
Azkaban實例的描述信息 |
My Local Azkaban |
azkaban.color |
網頁的主題顏色 |
#FF3601 |
azkaban.default.servlet.path |
訪問WEB頁面默認的根路徑 |
/index |
web.resource.dir |
CSS和JS文件所在的位置 |
web/ |
default.timezone |
時區,應該設置為Asia/Shanghai |
America/Los_Angeles |
viewer.plugin.dir |
監控插件安裝的路徑 |
plugins/viewer |
cache.directory |
緩存目錄 |
cache |
job.max.Xms |
每個Job初始化時分配的內存 |
1GB |
job.max.Xmx |
每個Job可以請求到的最大內存 |
2GB |
(2) Jetty 相關的配置
配置 |
說明 |
默認值 |
---|---|---|
jetty.port |
jetty端口 |
8081 |
jetty.use.ssl |
是否使用SSL |
false |
jetty.maxThreads |
用於發送請求的最大線程數 |
25 |
jetty.ssl.port |
SSL port |
8443 |
jetty.keystore |
keystore文件的位置 |
|
jetty.password |
jetty密碼 |
|
jetty.keypassword |
jetty密碼 |
|
jetty.truststore |
truststore文件的位置 |
|
jetty.trustpassword |
trust密碼 |
(3) Project 管理相關的配置
配置 |
說明 |
默認值 |
---|---|---|
project.temp.dir |
上傳調度任務時使用的臨時文件夾 |
temp |
project.version.retention |
清理前保留還未進行調度的項目的版本個數 |
3 |
creator.default.proxy |
自動將項目的創建者作為代理用戶添加到項目中 |
true |
lockdown.create.projects |
防止除具有Admin角色的人以外的任何人創建新項目 |
false |
lockdown.upload.projects |
防止除管理員用戶和具有上傳項目權限的用戶以外的任何人上傳調度任務 |
false |
(4) MySQL 相關配置
配置 |
說明 |
默認值 |
---|---|---|
database.type |
數據庫類型,目前只支持MySQL |
mysql |
mysql.port |
MySQL端口號 |
3306 |
mysql.host |
MySQL主機名 |
localhost |
mysql.database |
MySQL數據庫 |
|
mysql.user |
MySQL用戶名 |
|
mysql.password |
MySQL密碼 |
|
mysql.numconnections |
Web客戶端可以打開的MySQL連接的最大個數 |
100 |
(5) Multiple Executor 模式相關的配置
azkaban.use.multiple.executors
- 說明:是否開啟多executor模式
- 默認值:false
azkaban.executorselector.filters
- 說明:當有多個Executor同時啟動的時候,需要從中選擇一個Executor去執行任務,這里設置一組過濾器的種類,不滿足要求的Executor就不會被分配任務,可選的值有:StaticRemainingFlowSize、MinimumFreeMemory和CpuStatus,注意這個配置與順序無關
- 默認值:無
azkaban.executorselector.comparator.{ComparatorName}
- 說明:當設置了Executor的過濾器類型后,還要設置過濾條件,比較器的種類有NumberOfAssignedFlowComparator、Memory、LastDispatched和CpuUsage這4種
- 舉例: (1) azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1 解釋:如果已經某個Executor上已經提交的任務個數大於1個,就不往該Executor上分配任務 (2) azkaban.executorselector.comparator.Memory=1 解釋:如果某個Executor所在節點的可用內存不足1G,就不往該節點分配任務 (3) azkaban.executorselector.comparator.CpuUsage=1 解釋:如果某個Executor所在節點的可用CPU核數不足1個,就不往該節點分配任務 (4) azkaban.executorselector.comparator.LastDispatched=1 解釋:如果上一次任務就是在這個Executor上分配的,那么本次的任務就不分配給這個Executor
azkaban.queueprocessing.enabled
- 說明:是否啟用隊列來分配任務
- 默認值:true
azkaban.webserver.queue.size
- 說明:隊列的大小
- 默認值:100000
azkaban.activeexecutor.refresh.milisecinterval
- 說明:統計可用executor個數的時間間隔(ms)
- 默認值:50000
azkaban.activeexecutor.refresh.flowinterval
- 說明:用於統計當前阻塞的任務個數的時間間隔(ms)
- 默認值:5
azkaban.executorinfo.refresh.maxThreads
- 說明:用於統計以上信息的線程個數
- 默認值:5
(6) Executor 管理相關配置
配置 |
說明 |
默認值 |
---|---|---|
execution.logs.retention.ms |
任務執行日志的保留時間(ms) |
7257600000L(12 weeks) |
(7) 通信郵件相關配置
配置 |
說明 |
默認值 |
---|---|---|
mail.sender |
azkaban發送通知消息的郵箱地址 |
|
mail.host |
郵箱服務器的主機名 |
|
mail.user |
郵箱服務器的用戶名 |
|
mail.password |
郵箱服務器的密碼 |
|
job.failure.email |
任務執行成功發送的郵箱 |
|
job.success.email |
任務執行失敗發送的郵箱 |
(8) 用戶管理相關配置
配置 |
說明 |
默認值 |
---|---|---|
user.manager.class |
用戶管理使用的類(可自定義) |
azkaban.user.XmlUserManager |
user.manager.xml.file |
配置用戶信息的xml文件的路徑 |
conf/azkaban-users.xml |
(9) 用戶 Session 相關配置
配置 |
說明 |
默認值 |
---|---|---|
session.time.to.live |
用戶session超時時間(ms) |
86400000 |
max.num.sessions |
最多可以同時開啟的session個數 |
10000 |
(10) HA 相關配置
配置 |
說明 |
默認值 |
---|---|---|
azkaban.webserver.external_hostname |
另一個webserver的主機名 |
|
azkaban.webserver.external_ssl_port |
另一個webserver的ssl端口 |
|
azkaban.webserver.external_port=8081 |
另一個webserver的端口 |
2. Azkaban Executor Server 配置
(1) 基本配置
配置 |
說明 |
默認值 |
---|---|---|
azkaban.webserver.url |
web server 的URL |
|
azkaban.jobtype.plugin.dir |
jobtype plugin 保存路徑 |
plugins/jobtypes |
azkaban.project.dir |
項目保存路徑 |
projects |
default.timezone.id |
Asia/Shanghai |
America/Los_Angeles |
(2) MySQL 相關配置
配置 |
說明 |
默認值 |
---|---|---|
database.type |
數據庫類型,目前只支持MySQL |
mysql |
mysql.port |
MySQL端口號 |
3306 |
mysql.host |
MySQL主機名 |
localhost |
mysql.database |
MySQL數據庫 |
|
mysql.user |
MySQL用戶名 |
|
mysql.password |
MySQL密碼 |
|
mysql.numconnections |
Web客戶端可以打開的MySQL連接的最大個數 |
100 |
(3) Executor 相關配置
配置 |
說明 |
默認值 |
---|---|---|
executor.port |
executor端口 |
12321 |
executor.maxThreads |
每個executor使用的線程數 |
|
executor.flow.threads |
每個任務可以使用的線程數 |
|
executor.global.propertie |
Executor使用的全局配置文件的路徑 |
conf/global.properties |
3. 插件配置
Azkaban在安全功能上做了增強,除了可以使用Azkaban配置的用戶執行任務以外,也可以使用系統用戶來提交任務,這使的Azkaban充分利用了Linux系統的權限安全機制,並且使得資源的可見性提升,簡化了監控資源的操作。配置過程如下:
編輯azkaban-exec-server/plugins/jobtypes/commonprivate.properties
文件:
# 設置為true,才可以使用系統用戶提交任務
execute.as.user=true # 后面的路徑是你放置execute-as-user這個文件的路徑 azkaban.native.lib=/path/to/execute-as-user # 使用系統用戶提交的時候,azkaban默認把它們放入azkaban組 # 所以你需要提前創建好azkaban這個組或者修改為一個已存在的組 azkaban.group.name=azkaban
execute-as-user文件的構造過程:
# (1) 在源碼包中找到execute-as-user.c文件的位置 # 例如在源碼包的az-exec-util/src/main/c/目錄下 find . -name execute-as-user.c # (2) 將execute-as-user.c文件移動到azkaban的安裝目錄下,例如: cp ./az-exec-util/src/main/c/execute-as-user.c /opt/azkaban/ # (3) 進去azkaban安裝目錄,執行以下命令 cd /opt/azkaban/ gcc execute-as-user.c -o execute-as-user sudo chown root execute-as-user sudo chmod 6050 execute-as-user