Azkaban的簡介和安裝(3.47.0版本,兩個服務模式安裝)

  1. Azkaban簡介
    官網: https://azkaban.github.io/
    Azkaban是由Linkedin開源的一個批量工作流任務調度器。用於在一個工作流內以一個特定的順序運行一組工作和流程。
    Azkaban定義了一種KV文件(properties)格式來建立任務之間的依賴關係,並提供一個易於使用的web用戶界面維護和跟蹤你的工作流。
    它有如下功能特點:
    Web用戶界面
    方便上傳工作流
    方便設置任務之間的關係
    調度工作流
    認證/授權(權限的工作)
    能夠殺死並重新啓動工作流
    模塊化和可插拔的插件機制
    項目工作區
    工作流和任務的日誌記錄和審計
  2. Azkaban安裝模式
    Azkaban 有三種部署方式:單服務模式、2個服務模式、分佈式多服務模式
  • solo server model(單服務模式):該模式中 webServer 和 executorServer 運行在同一個進程中,進程名是AzkabanSingleServer。可以使用自帶的H2數據庫或者配置mysql數據。該模式適用於小規模的使用。此模式合適個人試用使用。它也可以用在小規模的使用案例中。
  • two server model(2個服務模式):數據庫爲mysql,採用主從設置進行備份,管理服務器(webServer)和執行服務器(executorServer)在不同進程中運行,這種模式下,管理服務器和執行服務器互不影響。適用在較重的生成環境中。
  • multiple-executor(分佈式多服務模式):存放元數據的數據庫爲mysql,採用主從設置進行備份,管理服務器(webServer)和執行服務器(executorServer)在不同進程中運行。多個Executor 模式爲最重的生產環境。
  1. Azkaban安裝(兩個服務模式安裝)
  • 安裝前準備

    安裝MySQL
    安裝jdk1.8

  • 下載,編譯

軟件下載目錄 /export/softwares/, 軟件安裝目錄 /export/servers/

cd /export/softwares/
wget https://github.com/azkaban/azkaban/archive/3.47.0.tar.gz
tar -zxvf 3.47.0.tar.gz -C ../servers/
cd /export/servers/azkaban-3.47.0/
yum -y install git
yum -y install gcc-c++
./gradlew distTar
# 編譯完成之後得到我們需要的安裝包在以下目錄下即可獲取得到
# azkaban-exec-server存放目錄
/export/servers/azkaban-3.47.0/azkaban-exec-server/build/distributions
# azkaban-web-server存放目錄
/export/servers/azkaban-3.47.0/azkaban-web-server/build/distributions
# azkaban-solo-server存放目錄
/export/servers/azkaban-3.47.0/azkaban-solo-server/build/distributions
# 數據庫文件
/export/servers/azkaban-3.47.0/azkaban-db/build/distributions
  • 複製, 解壓相關軟件包
# 複製
cp /export/servers/azkaban-3.47.0/azkaban-exec-server/build/distributions/azkaban-web-server-0.1.0-SNAPSHOT.tar.gz  /export/softwares/
cp /export/servers/azkaban-3.47.0/azkaban-exec-server/build/distributions/azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz /export/softwares/
cp /export/servers/azkaban-3.47.0/azkaban-solo-server/build/distributions/azkaban-exec-solo-0.1.0-SNAPSHOT.tar.gz /export/softwares/
cp /export/servers/azkaban-3.47.0/azkaban-db/build/distributions/azkaban-db-0.1.0-SNAPSHOT.tar.gz  /export/softwares/
# 解壓
cd /export/softwares/
tar -zxvf azkaban-exec-server-0.1.0-SNAPSHOT.tar.gz  -C ../servers/
tar -zxvf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz  -C ../servers/
tar -zxvf azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz  -C ../servers/
tar -zxvf azkaban-db-0.1.0-SNAPSHOT.tar.gz  -C ../servers/
#重命名
cd /export/servers/
mv azkaban-web-server-0.1.0-SNAPSHOT/ azkaban-web-server-3.47.0
mv azkaban-exec-server-0.1.0-SNAPSHOT/ azkaban-exec-server-3.47.0
mv azkaban-solo-server-0.1.0-SNAPSHOT/ azkaban-solo-server-3.47.0
mv azkaban-db-0.1.0-SNAPSHOT/ azkaban-db-3.47.0
  • 創建Azkaban元數據庫
mysql  -uroot -p
CREATE DATABASE azkaban;
use azkaban; 
source /export/servers/azkaban-db-3.47.0/create-all-sql-0.1.0-SNAPSHOT.sql;
  • 安裝SSL配置
cd  /export/servers/azkaban-web-server-3.47.0
keytool -keystore keystore -alias jetty -genkey -keyalg RSA

ssl配置

  • azkaban web server安裝
    配置azkaban-web-server
    首先將azkaban-solo-server安裝目錄下的conf文件夾拷貝到azkaban-web-server的安裝目錄下cp -r /export/servers/azkaban-solo-server-0.1.0-SNAPSHOT/conf/ /export/servers/azkaban-web-server-3.47.0/

    修改azkaban-web-server的配置文件

cd /export/servers/azkaban-web-server-3.47.0/conf
vim azkaban.properties

#具體的配置 
azkaban.name=MyAzkaban
azkaban.label=My Azkaban
default.timezone.id=Asia/Shanghai
#database.type=h2
#h2.path=./h2
#h2.create.tables=true
database.type=mysql
mysql.port=3306
mysql.host=node03
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
jetty.use.ssl=true
jetty.keystore=/export/servers/azkaban-web-server-3.47.0/keystore
jetty.password=azkaban
jetty.keypassword=azkaban
jetty.truststore=/export/servers/azkaban-web-server-3.47.0/keystore
jetty.trustpassword=azkaban

在conf目錄下添加log4j.properties的配置文件

vim  log4j.properties
#添加log4j代碼
log4j.rootLogger=INFO, Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS Z} %p [%c{1}] %m%n
log4j.category.velocity=INFO
  • azkaban executor server 安裝
    配置azkaban-exec-server
    將azkaban-web-server的conf目錄拷貝到azkaban-executor-server的安裝路徑下
cd /export/servers
cp -r /export/servers/azkaban-web-server-3.47.0/conf/ /export/servers/azkaban-exec-server-3.47.0/

添加插件 mkdir -p /export/servers/azkaban-exec-server-3.47.0/plugins/jobtypes
將我們編譯後的C文件execute-as-user.c
複製到這個目錄來/export/servers/azkaban-exec-server-3.47.0/plugins/jobtypes
然後執行以下命令生成execute-as-user

yum -y install gcc-c++
cd /export/servers/azkaban-exec-server-3.47.0/plugins/jobtypes
gcc execute-as-user.c -o execute-as-user
chown root execute-as-user
chmod 6050 execute-as-user

添加配置文件

cd  /export/servers/azkaban-exec-server-3.47.0/plugins/jobtypes
vim commonprivate.properties
# 代碼
execute.as.user=false
azkaban.native.lib=/export/servers/azkaban-exec-server-3.47.0/plugins/jobtypes

最終生成如圖
exec生成

  • 啓動服務
    啓動azkaban-web-server
cd /export/servers/azkaban-web-server-3.47.0
bin/start-web.sh

啓動azkaban exec server

cd /export/servers/azkaban-exec-server-3.47.0
bin/start-exec.sh

訪問地址: https://ip:8443

如果出現訪問報錯, javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection
原因:瀏覽器安全證書限制。添加信任即可。

解決辦法:使用https://ip:8443訪問

即不要使用http訪問,使用https。。。

參考: Azkaban 簡介及安裝(3.x)

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