現成的開源排程系統,比如ooize、azkaban。
azkaban是由linkedin開源的乙個批量工作流任務排程器。用於在乙個工作流內以乙個特定的順序執行一組工作和流程。azkaban定義了一種kv檔案格式來建立任務之間的依賴關係,並提供乙個易於使用的web使用者介面維護和跟蹤你的工作流。
它有如下功能特點:
最好結合shell指令碼來完成排程。
azkaban最好安裝在master上,方便各種命令的執行。
azkaban web伺服器:
azkaban-web-server-2.5.0.tar.gz
azkaban執行伺服器:
azkaban-executor-server-2.5.0.tar.gz
mysql:
目前azkaban只支援 mysql,需安裝mysql伺服器,可以安裝在某個節點之上(172.23.27.11),並建立了 root使用者,密碼 921015.
1.azkaban web伺服器安裝
1.解壓
tar– zxvf
azkaban-web-server-2
.5.0.tar
.gz
mvazkaban-web-server-2
.5.0server
2.建立ssl配置
keytool -keystore keystore -alias
jetty -genkey -keyalg rsa
執行此命令後,會提示輸入當前生成 keystor的密碼及相應資訊,輸入的密碼請勞記,資訊如下:
輸入keystore密碼:
再次輸入新密碼:
輸入相同密碼921015
完成上述工作後,將在當前目錄生成 keystore 證書檔案,將keystore 考貝到 azkaban web伺服器根目錄中.
cp keystore azkaban/server
3.配置檔案
注:先配置好伺服器節點上的時區
1、先生成時區配置檔案asia/shanghai,用互動式命令 tzselect 即可
2、拷貝該時區檔案,覆蓋系統本地時區配置
cp /usr/share/zoneinfo/asia/shanghai /etc/localtime
修改conf/azkaban.properties
default
.timezone.id=
asia/
shanghai
#時區
database.
type=mysql
mysql.port=
3306
mysql.host=
172.23
.27.11
mysql.database=azkaban
#資料庫例項名
mysql.user=root
mysql.password=
921015
# azkaban jetty server properties.
jetty.maxthreads=
25jetty.ssl.port=
8443
jetty.keystore=keystore
jetty.password=
921015
jetty.keypassword=
921015
jetty.truststore=keystore
jetty.trustpassword=
921015
其餘不修改。
修改conf/azkaban-users.xml,新增web訪問使用者密碼
<
user
username
="admin"
password
="admin"
roles
="admin,metrics"
/>
2. azkaban 執行伺服器executor配置
修改conf/azkaban.properties
default
.timezone.id=
asia/
shanghai
#時區
#資料庫設定
database.
type=mysql
mysql.port=
3306
mysql.host=
172.23
.27.11
mysql.database=azkaban
#資料庫例項名
mysql.user=root
mysql.password=
921015
3. azkaban指令碼匯入(mysql配置)
tar
–zxvf
azkaban-sql-script-2
.5.0
.tar
.gz
在安裝了mysql的節點
mysql> create database azkaban;
mysql>
useazkaban;
mysql> source /opt/azkaban
-2.5.
0/create-
all-sql
-2.5.
0.sql;
4. 啟動
bin/azkaban-web-start.sh
或者啟動到後台:
nohup bin/azkaban-web-start.sh 1>/tmp/azstd.out
2>/tmp/azerr.out &
bin/azkaban-executor-start.sh
使用者名稱密碼:admin
多依賴job示例
1. 建立job描述
第乙個job:foo.job
# foo.job
type
= command
command
= echo
foo第二個job:bar.job依賴foo.job
# bar.job
type
= command
dependencies=foo
command
= echo bar
2. 打包上傳
將所有job資源檔案打到乙個zip包中。
在web頁面中建立工程,並上傳zip包。
可以設定排程時間和立即執行。
暫時先記錄到這兒吧,以後再完善。
Azkaban 問題總結
azkaban 的基本使用見 問題描述 執行df h命令看到系統磁碟使用率已達到92 然後用命令du sh排查那些目錄占用的空間比較多時,並沒有發現。執行lsof grep deleted命令後如圖 將 temp 目錄改到 資料磁碟目錄下 修改 executor 結點的配置,重啟 project.t...
azkaban簡單學習
mysql 建立資料庫 ankaban編譯並拷貝出tar.gz solo server配置使用 編譯 gradlew build x test 拷貝出編譯後的 tar.gz 官網配置安裝描述 使用上述 編譯後的azkaban solo server 3.82.0 6 g1ecc79e1.tar.gz...
Azkaban使用簡單筆記
官方文件 azkaban主要的組成 1.關係型資料庫 mysql 2.azkabanwebserver 3.azkabanexcutorserver 使用mysql儲存狀態,azkabanwebserver和azkabanexcutorserver訪問資料庫。azkabanwebserver主要管理...