安裝azkaban時(shí)參考了網(wǎng)上的資料,結(jié)果沒(méi)一篇能安裝成功的。調(diào)試半天才成功,大部分的問(wèn)題是資料版本太老,github上最新的源碼不適用,或者提供的配置文件有問(wèn)題。以下為整合各種問(wèn)題后的安裝方式,版本為3.44。
簡(jiǎn)介:輕量級(jí)工作流調(diào)度系統(tǒng),由多個(gè)組件組成,其中最基礎(chǔ)有三部分,分別為數(shù)據(jù)庫(kù)、web-server、exec-server。web-server提供了可視化的界面管理,作業(yè)配置;exec-server則是來(lái)執(zhí)行具體的作業(yè),該組件可配置集群。
使用自動(dòng)腳本安裝,步驟如下:
?1、git clone?https://github.com/hqh546020152/azkaban_install.git
?2、cd? azkaban_install && sh ?azkaban_install.sh
依賴(lài)環(huán)境:jdk1.8以上(請(qǐng)?zhí)崆芭渲煤茫?/p>
1、下載源碼
????cd ~
????git clone https://github.com/azkaban/azkaban.git
2、編譯成tar包(如果不是第一次構(gòu)建需要先clean,執(zhí)行:./gradlew clean)
????cd? azkaban
????./gradlew distTar
3、拷貝壓縮包到/opt目錄上
????cp /opt/azkaban/azkaban-*/build/distributions/*.tar.gz? /opt
4、解壓縮
????cd /opt
????tar zxvf azkaban-exec-server-3.44.0-2-ga7b0fa4.tar.gz
????tar zxvf azkaban-web-server-3.44.0-2-ga7b0fa4.tar.gz
????tar zxvf azkaban-db-3.44.0-2-ga7b0fa4.tar.gz
????tar zxvf azkaban-solo-server-3.44.0-2-ga7b0fa4.tar.gz
5、數(shù)據(jù)庫(kù)創(chuàng)建及數(shù)據(jù)結(jié)構(gòu)導(dǎo)入
????mysql> CREATE DATABASE azkaban;
????mysql> CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';
????mysql> flush privileges;
cd /opt/azkaban-db-3.44.0-2-ga7b0fa4
mysql -u azkaban -p azkaban < create-all-sql-3.44.0-2-ga7b0fa4.sql
6、配置keystore
????cd /opt/azkaban-web-server-3.44.0-2-ga7b0fa4/bin/
????keytool -keystore keystore -alias jetty -genkey -keyalg RSA
? ? ? ? 參考如下信息

????以上配置完成之后會(huì)在當(dāng)前目錄生成一個(gè)keystore文件;
7、配置conf/azkaban.properties:?
????????如果Azkaban WebServer下面沒(méi)有conf目錄,將azkaban-solo-web 下的conf目錄拷貝過(guò)來(lái)。
azkaban.name=Test
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=/opt/azkaban-web-server-3.44.0-2-ga7b0fa4/web/
default.timezone.id=Asia/Shanghai
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=/opt/azkaban-web-server-3.44.0-2-ga7b0fa4/conf/azkaban-users.xml
executor.global.properties=/opt/azkaban-web-server-3.44.0-2-ga7b0fa4/conf/global.properties
azkaban.project.dir=projects
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
velocity.dev.mode=false
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=keystore
jetty.password=azkaban
jetty.keypassword=azkaban
jetty.truststore=keystore
jetty.trustpassword=azkaban
jetty.excludeCipherSuites=SSL_RSA_WITH_DES_CBC_SHA,SSL_DHE_RSA_WITH_DES_CBC_SHA,SSL_DHE_DSS_WITH_DES_CBC_SHA,SSL_RSA_EXPORT_WITH_RC4_40_MD5,SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA
executor.port=12321
mail.sender=
mail.host=
job.failure.email=
job.success.email=
lockdown.create.projects=false
cache.directory=cache
jetty.connector.stats=true
executor.connector.stats=true
8、創(chuàng)建log4j.properties文件
cd /opt/azkaban-web-server-3.44.0-2-ga7b0fa4/conf
vi 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
9、 用戶(hù)設(shè)置
進(jìn)入 azkaban web 服務(wù)器 conf 目錄, azkaban-users.xml?
10、啟動(dòng)azkaban web服務(wù)器
cd /opt/azkaban-web-server-3.44.0-2-ga7b0fa4/
sh bin/azkaban-web-start.sh
11、訪(fǎng)問(wèn)驗(yàn)證https://ip:8443/
用戶(hù)名:azkaban
密碼:azkaban
Azkaban Executor Server 安裝和配置
進(jìn)入azkaban-executor-server目錄,將azkaban-web-server下的conf目錄拷貝到
該目錄下
1)配置executor端的azkaban.properties
default.timezone.id=Asia/Shanghai
azkaban.jobtype.plugin.dir=plugins/jobtypes
executor.global.properties=/opt/azkaban-exec-server-3.44.0-2-ga7b0fa4/conf/global.properties
azkaban.project.dir=projects
database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
executor.maxThreads=50
executor.port=12321
executor.flow.threads=30
jetty.connector.stats=true
executor.connector.stats=true
#executor.metric.milisecinterval.default=60000
#以下為集群配置
#azkaban.use.multiple.executors=true
#azkaban.executorselector.filters=StaticRemainingFlowSize,MinimumFreeMemory,CpuStatus
#azkaban.executorselector.comparator.NumberOfAssignedFlowComparator=1
#azkaban.executorselector.comparator.Memory=1
#azkaban.executorselector.comparator.LastDispatched=1
#azkaban.executorselector.comparator.CpuUsage=1
2) 啟動(dòng)執(zhí)行服務(wù)器(這里也會(huì)出現(xiàn)web啟動(dòng)出現(xiàn)的問(wèn)題,相同處理):
sh bin/azkaban-executor-start.sh
3) 分布式配置注意事項(xiàng)
以確認(rèn)使用的是分布式方式,隨后提交的job會(huì)根據(jù)情況自行選擇執(zhí)行服務(wù)器,否則默認(rèn)只使用本地執(zhí)行服務(wù)器,切記!
之后需要在mysql的azkaban庫(kù)中添加各個(gè)執(zhí)行服務(wù)器的ip/域名和端口:
insert into executors(host,port) values("EXECUTOR_PORT",EXECUTOR_PORT);
參考資料:
http://blog.csdn.net/zk673820543/article/details/76984947
問(wèn)題處理參考資料:
https://my.oschina.net/puwenchao/blog/1504739
https://www.cnblogs.com/zlslch/p/7124229.html
集群參考資料: