1.下載:
git clone https://github.com/azkaban/azkaban.git
2.編譯:
./gradlew build -x test
3. 創建目錄並拷貝
mkdir /opt/local/azkaban
cp -r azkaban-*/build/distributions/azkaban-*.tar.gz /opt/local/azkaban
解壓縮文件夾,並重命名
4. 在mysql中創建azkaban元數據庫, 導入元數據庫表
創建數據庫,並創建用戶賦值權限
grant all privileges on azkaban.* to azkaban@dwdev-name2 identified by 'azkaban';
flush privileges;
使用create-all-sql-3.58.0-2-gfd56124.sql 腳本導入元數據庫表。
mysql -uazkaban -p use azkaban source create-all-sql-3.58.0-2-gfd56124.sql
5. 配置executor-server
主要修改點:時區、mysql數據庫鏈接
default.timezone.id=Asia/Shanghai azkaban.webserver.url=http://dwdev-name1:8081 mysql.port=3306 mysql.host=dwdev-name2 mysql.database=azkaban mysql.user=azkaban mysql.password=azkaban
executor.port=12321 #如果配置成solo-server或者two-server模式,要指定固定端口,同樣web-server也需要指定相同的端口。
6. 生成SSL證書
使用下面命令生成ssl證書,密碼和最后確認輸入,其他默認為空即可。
需要切換到azkaban-web-server根目錄執行。
cd /opt/local/azkaban/azkaban-web-server
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
7. 配置azkaban-web-server
default.timezone.id=Asia/Shanghai #修改時區 # Azkaban Jetty server properties jetty.use.ssl=true #開啟ssl,如果為false,則不需要執行第6步 jetty.maxThreads=25 jetty.port=8081 jetty.ssl.port=8443 jetty.keystore=keystore #證書目錄在web-server根目錄 jetty.password=123456 jetty.keypassword=123456 jetty.truststore=keystore jetty.trustpassword=123456 # mysql數據庫配置 database.type=mysql mysql.port=3306 mysql.host=dwdev-name2 mysql.database=azkaban mysql.user=azkaban mysql.password=azkaban mysql.numconnections=100 # 指定excutor port executor.port=12321 #Multiple Executor azkaban.use.multiple.executors=false #關閉multiple-executor模式
8. 啟動azkaban-exec-server
注意:在azkaban-exec-server目錄下啟動, bin/start-exec.sh
查看數據庫azkaban表excutors中的active狀態是否為1,如果不是,需要是手工修改為1。
9. 啟動azkaban-web-server
注意:在shazkaban-web-server目錄下啟動, bin/start-web.sh
10. 應用模式,目前上面的配置采用的是第二種模式。
azkaban三種模式執行:
1) solo-server模式、
DB使用的是一個內嵌的H2,Web Server和Executor Server運行在同一個進程里。這種模式包含Azkaban的所有特性,但一般用來學習和測試。
2)two-server模式
DB使用的是MySQL,MySQL支持master-slave架構,Web Server和Executor Server運行在不同的進程中。
3)multiple-executor模式。
DB使用的是MySQL,MySQL支持master-slave架構,Web Server和Executor Server運行在不同機器上,且有多個Executor Server。
目前我們使用的是第二中模式,即two-server模式,其實是在一台服務器上啟動了兩個進程,分別運行了WebServer和ExecutorServer。
完成后上圖