azkaben任務調度器

azkaban學習筆記總結java

01.工做流調度器azkaban

1. 任務調度概述

  • 一個完整的數據分析系統一般都是由大量任務單元組成:
    shell腳本程序,java程序,mapreduce程序、hive腳本等
  • 各任務單元之間存在時間前後及先後依賴關係

現成的開源調度系統,好比ooize、azkaban。mysql

2. azkaban介紹

Azkaban是由Linkedin開源的一個批量工做流任務調度器。用於在一個工做流內以一個特定的順序運行一組工做和流程。Azkaban定義了一種KV文件格式來創建任務之間的依賴關係,並提供一個易於使用的web用戶界面維護和跟蹤你的工做流。
它有以下功能特色:web

  • Web用戶界面
  • 方便上傳工做流
  • 方便設置任務之間的關係
  • 調度工做流
  • 認證/受權(權限的工做)
  • 可以殺死並從新啓動工做流
  • 模塊化和可插拔的插件機制
  • 項目工做區
  • 工做流和任務的日誌記錄和審計

3. azkaban安裝部署

最好結合shell腳原本完成調度。sql

azkaban最好安裝在master上,方便各類命令的執行。shell

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
mv azkaban-web-server-2.5.0  server

2.建立SSL配置插件

keytool -keystore keystore -alias jetty -genkey -keyalg RSA

運行此命令後,會提示輸入當前生成 keystor的密碼及相應信息,輸入的密碼請勞記,信息以下:

輸入keystore密碼:
再次輸入新密碼:
輸入相同密碼921015

完成上述工做後,將在當前目錄生成 keystore 證書文件,將keystore 考貝到 azkaban web服務器根目錄中.

cp keystore azkaban/server

3.配置文件

注:先配置好服務器節點上的時區
一、先生成時區配置文件Asia/Shanghai,用交互式命令 tzselect 便可
二、拷貝該時區文件,覆蓋系統本地時區配置
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=25
jetty.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> use azkaban;
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 &

https://服務器IP地址:8443

bin/azkaban-executor-start.sh

用戶名密碼:admin

3. command job示例

多依賴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包。

能夠設置調度時間和當即執行。

暫時先記錄到這兒吧,之後再完善。

相關文章
相關標籤/搜索