Azkaban 簡介及安裝(3.x)

1.Azkaban 簡介

官網:https://azkaban.github.io/

Azkaban 一個批量工作流任務調度器,使用Java語言開發。用於在一個工作流內以一個特定的順序運行一組工作和流程。Azkaban使用job配置文件建立任務之間的依賴關係,並提供一個易於使用的web用戶界面維護和跟蹤你的工作流。

Azkaban 的優點

  • 提供功能清晰,簡單易用的Web UI界面
  • 提供job配置文件快速建立任務和任務之間的依賴關係
  • 提供模塊化和可插拔的插件機制,原生支持command、Java、Hive、Pig、Hadoop
  • 基於Java開發,代碼結構清晰,易於二次開發

Azkaban 安裝模式

Azkaban 有三種部署方式:單服務模式、2個服務模式、分佈式多服務模式

  • solo server model(單服務模式):該模式中 webServer 和 executorServer 運行在同一個進程中,進程名是AzkabanSingleServer。可以使用自帶的H2數據庫或者配置mysql數據。該模式適用於小規模的使用。此模式合適個人試用使用。它也可以用在小規模的使用案例中。
  • two server model(2個服務模式):數據庫爲mysql,採用主從設置進行備份,管理服務器(webServer)和執行服務器(executorServer)在不同進程中運行,這種模式下,管理服務器和執行服務器互不影響。適用在較重的生成環境中。
  • multiple-executor(分佈式多服務模式):存放元數據的數據庫爲mysql,採用主從設置進行備份,管理服務器(webServer)和執行服務器(executorServer)在不同進程中運行。多個 Executor 模式爲最重的生產環境。

2.Azkaban 3.x 安裝(two-server 模式)

安裝前準備

  • 安裝JDK1.8
  • 安裝MySQL
1.下載

執行命令

git clone https://github.com/azkaban/azkaban.git

下載完成後可以看到有一個名爲 azkaban 的文件夾,當前最新版本爲3.48.0
這裏寫圖片描述

2.編譯

cd 到 azkaban 目錄下,執行如下命令生成一系列文件

./gradlew distTar

這裏寫圖片描述

3.拷貝

新建文件夾:mkdir azkaban-3.48.0
執行命令如下命令拷貝到 azkaban-3.48.0 目錄下

$ cp azkaban/azkaban-exec-server/build/distributions/azkaban-exec-server-3.48.0-8-gdc851ec.tar.gz azkaban-3.48/
$ cp azkaban/azkaban-web-server/build/distributions/azkaban-web-server-3.48.0-8-gdc851ec.tar.gz azkaban-3.48/
$ cp azkaban/azkaban-db/build/distributions/azkaban-db-3.48.0-8-gdc851ec.tar.gz azkaban-3.48/
4.解壓 重命名
$ tar -zxvf azkaban-exec-server-3.48.0-8-gdc851ec.tar.gz
$ tar -zxvf azkaban-web-server-3.48.0-8-gdc851ec.tar.gz
$ tar -zxvf azkaban-db-3.48.0-8-gdc851ec.tar.gz
$ mv azkaban-exec-server-3.48.0-4-g9a42cb2 azkaban-exec-server
$ mv azkaban-web-server-3.48.0-4-g9a42cb2 azkaban-web-server
$ mv azkaban-db-3.48.0-4-g9a42cb2 azkaban-db
5.創建Azkaban元數據庫

登錄mysql,執行如下語句

mysql> create database azkaban;
Query OK, 1 row affected (0.00 sec)

mysql> use azkaban;
Database changed
mysql> source /home/hadoop/software/azkaban-3.48/azkaban-db/create-all-sql-3.48.0-8-gdc851ec.sql

這裏寫圖片描述
創建的表:
這裏寫圖片描述

6.創建SSL配置

使用keytool創建SSL配置,keytool是JDK提供的一個工具,輸入如下命令,可以查看

[root@harvey azkaban-3.47.0]# find / -name keytool 
/home/hadoop/software/jdk/bin/keytool
/home/hadoop/software/jdk/jre/bin/keytool

執行命令創建SSL配置

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

這裏寫圖片描述

7.azkaban-exec-server中配置azkaban.properties 添加log4j.properties 添加mysql驅動

拷貝 azkaban-solo-server-3.48.0-8-gdc851ec.tar.gz 到 azkaban-3.48.0 目錄下,解壓並重命名

$ cp azkaban/azkaban-solo-server/build/distributions/azkaban-solo-server-3.48.0-8-gdc851ec.tar.gz azkaban-3.48/
$ tar -zxvf azkaban-solo-server-3.48.0-8-gdc851ec.tar.gz
$ mv azkaban-solo-server-3.48.0-8-gdc851ec azkaban-solo-server

將azkaban-solo-server下的conf plugins 和sql文件夾拷貝到azkaban-exec-server

$ cd azkaban-solo-server
$ cp -a conf/ plugins/ sql/ ~/software/azkaban-3.48/azkaban-exec-server
  • 配置conf/azkaban.properties
azkaban.name=Harvey             # 服務器UI名稱,用於服務器上方顯示的名字
azkaban.label=My Local Azkaban      # 描述信息
default.timezone.id=Asia/Shanghai       # 時區,默認爲美國America/Los_Angeles
database.type=mysql             # 數據庫類型
mysql.port=3306                 # 端口
mysql.host=192.168.191.65           # 數據庫連接IP
mysql.database=azkaban          # 數據庫實例名
mysql.user=root                 # 數據庫用戶名
mysql.password=P@ssw0rd         # 數據庫密碼
mysql.numconnections=100            # 最大連接數
  • 在conf目錄下添加log4j.properties
$ touch log4j.properties
log4j.rootLogger=INFO,C
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.err
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
  • 添加MySQL驅動
    在azkaban-exec-server目錄下創建文件夾:mkdir extlib
    將lib目錄下的mysql驅動複製到extlib目錄下
$ mkdir extlib
$ cp lib/mysql-connector-java-5.1.28.jar extlib/

拷貝azkaban-exec-server目錄下的conf和extlib到azkaban-web-server目錄下

$ cp -a conf/ extlib/ ../azkaban-web-server
8.啓動,先啓動exec-server(執行器),然後啓動web-server(web服務)
cd azkaban-exec-server/bin
./start-exec.sh

cd azkaban-web-server/bin
./start-web.sh

啓動完成後,jps查看進程

[hadoop@harvey bin]$ jps
2096 AzkabanExecutorServer
2135 AzkabanWebServer
2154 Jps

啓動azkaban遇到問題解決

  • 啓動exec-server異常
    異常:java.io.FileNotFoundException: conf/global.properties (沒有那個文件或目錄)
    這裏寫圖片描述
    解決方法:vim azkaban.properties 修改 executor.global.properties 爲絕對路徑
    這裏寫圖片描述
  • 啓動exec-web異常
    異常:java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    這裏寫圖片描述
    解決方法:vim azkaban.properties 修改 user.manager.xml.file 爲絕對路徑
    這裏寫圖片描述
9.訪問Azkaban UI界面

訪問:http://IP:8081
這裏寫圖片描述

看到的頁面奇醜無比,哈哈,解決方法如下
修改azkaban.properties文件中的web.resource.dir
這裏寫圖片描述
這裏寫圖片描述

然後重啓web-server,再次訪問,可以看到UI界面就正常了
這裏寫圖片描述

輸入用戶名密碼azkaban/azkaban登錄
這裏寫圖片描述

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