Mark 下這篇文章:
最近項目遷移到新集羣,試試同事推薦的開源任務調度程序-azkaban(阿茲卡班),沒看錯,就是哈利波特里的阿茲卡班,azikaban主要用來解決hadoop依賴任務的執行,但是它本身支持linux和java程序,因此適合做小項目的任務調度管理程序。
Azkaban官網
它有三個重要組件:
- 關係數據庫(目前僅支持mysql)
- web管理服務器-AzkabanWebServer
- 執行服務器-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腳本)
- 數據庫安裝配置
- 數據庫創建
#不一定非要命名爲'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驅動,若不存在,則拷貝一個
- 數據庫創建
- 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/Shanghaidatabase.type=mysql
mysql.port=3306
mysql.host=localhost
#改爲自己的數據庫名稱
mysql.database=azkaban
#改爲自己的數據庫賬號
mysql.user=azkaban
#改爲自己的數據庫密碼
mysql.password=azkaban_abcmail.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等,如有興趣自行安裝,本次項目未用到
自此,安裝已完成,使用篇待續
原文鏈接:http://www.jianshu.com/p/cc680380ca34
著作權歸作者所有,轉載請聯繫作者獲得授權,並標註“簡書作者”。