Azkaban-開源任務調度程序(安裝篇)

Mark 下這篇文章:


最近項目遷移到新集羣,試試同事推薦的開源任務調度程序-azkaban(阿茲卡班),沒看錯,就是哈利波特里的阿茲卡班,azikaban主要用來解決hadoop依賴任務的執行,但是它本身支持linux和java程序,因此適合做小項目的任務調度管理程序。
Azkaban官網

它有三個重要組件:

  1. 關係數據庫(目前僅支持mysql)
  2. web管理服務器-AzkabanWebServer
  3. 執行服務器-AzkabanExecutorServer

    組件

開始

Azkaban有三種運行模式:

  • solo server mode:最簡單的模式,數據庫內置的H2數據庫,管理服務器和執行服務器都在一個進程中運行,任務量不大項目可以採用此模式。
  • two server mode:數據庫爲mysql,管理服務器和執行服務器在不同進程,這種模式下,管理服務器和執行服務器互不影響
  • multiple executor mode:該模式下,執行服務器和管理服務器在不同主機上,且執行服務器可以有多個。

我們項目要求不是太高,我這次採用第二種模式,管理服務器、執行服務器分進程,但在同一臺主機上。

安裝

azkaban和官方說的一樣,簡單易用,先到官網下載相關包並解壓,我下載的是:

  • azkaban-executor-server-2.5.0.tar.gz(執行服務器)
  • azkaban-web-server-2.5.0.tar.gz(管理服務器)
  • azkaban-sql-script-2.5.0.tar.gz(mysql腳本)
  1. 數據庫安裝配置
    • 數據庫創建
      #不一定非要命名爲'azkaban'
      mysql>CREATE DATABASE azkaban;

      #創建用戶和密碼
      mysql>CREATE USER 'username'@'%' IDENTIFIED BY 'password';

      #給用戶相關權限
      mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON <database>.* to '<username>'@'%' WITH GRANT OPTION;
    • 數據庫配置
      編輯/etc/my.cnf
      [mysqld]
      max_allowed_packet=1024M
    • 重啓服務器
    • 執行腳本
      執行下載包azkaban-sql-script-2.5.0.tar.gz中腳本“create-all-sql”
    • 檢查下載包web和executor的lib文件下是否有mysql驅動,若不存在,則拷貝一個
  2. web管理服務器(azkaban-web-2.5.0)
    有幾個重要目錄和配置文件
文件夾 解釋
bin 用來存放啓動和停止腳本
conf 配置文件,最重要的配置azkaban.properties
lib jar文件,查看是否存在mysql驅動
extlib 擴展lib
plugins 擴展插件,有hdfs、hive、pig等
web web目錄

配置conf中azkaban.properties,其他默認即可

#設置項目名稱
azkaban.name=BigData
#設置項目副標題
azkaban.label=besttone
#一定要設置爲上海,否則按美國時間執行
default.timezone.id=Asia/Shanghai

database.type=mysql
mysql.port=3306
mysql.host=localhost
#改爲自己的數據庫名稱
mysql.database=azkaban
#改爲自己的數據庫賬號
mysql.user=azkaban
#改爲自己的數據庫密碼
mysql.password=azkaban_abc

mail.sender=email賬號
mail.host=email服務器
mail.user=email賬號
mail.password=email密碼

#Azkaban Jetty 服務設置,先安裝此配置,後面再詳細介紹生產方法.
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=web/keystore
jetty.password=besttone
jetty.keypassword=besttone
jetty.truststore=web/truststore
jetty.trustpassword=besttone

jetty ssl配置

  • jetty ssl keystore生成

    keytool -genkey -keystore keystore -alias jetty-azkaban -keyalg RSA -validity 3560

  • 根據提示輸入相關信息,我的密碼爲besttone,和上面的password對應

    keytool -export -alias jetty-azkaban -keystore keystore -rfc -file selfsignedcert.cer

  • 過程中如果要輸入密碼,請輸入之前密碼

    keytool -import -alias certificatekey -file selfsignedcert.cer -keystore truststore

  • 這時候在web目錄下新建key目錄,將生成的keystore,truststore拷貝進去

執行啓動命令

./bin/azkaban-web-start.sh

也可以執行nohup,後臺運行

nohup ./bin/azkaban-web-start.sh &

關閉命令

./bin/azkaban-web-shutdown.sh

訪問https://localhost:8443
輸入賬號和密碼,都是azkaban,如果要更改,請修改conf/azkaban-users.xml文件

至此已經可以看到web管理界面了,下面執行需要啓動執行服務器。
ps:如果本地可以執行,遠程無法執行,看是否遠程服務器禁用8443端口,將8443改爲8888即可。

3.執行服務器
修改conf/azkaban.properties文件,其他默認

default.timezone.id=Asia/Shanghai
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban_abc

執行腳本,啓動執行服務器

./bin/azkaban-executor-start.sh

也可以執行nohup,後臺運行

nohup ./bin/azkaban-executor-start.sh &

關閉命令

./bin/azkaban-executor-shutdown.sh

4.安裝擴展控件
azkaban有很多插件,hdfs、hive、pig等,如有興趣自行安裝,本次項目未用到

自此,安裝已完成,使用篇待續



文/haort(簡書作者)
原文鏈接:http://www.jianshu.com/p/cc680380ca34
著作權歸作者所有,轉載請聯繫作者獲得授權,並標註“簡書作者”。
發佈了93 篇原創文章 · 獲贊 13 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章