安装azkaban时参考了网上的资料,结果没一篇能安装成功的。调试半天才成功,大部分的问题是资料版本太老,github上最新的源码不适用,或者提供的配置文件有问题。以下为整合各种问题后的安装方式,版本为3.44。
简介:轻量级工作流调度系统,由多个组件组成,其中最基础有三部分,分别为数据库、web-server、exec-server。web-server提供了可视化的界面管理,作业配置;exec-server则是来执行具体的作业,该组件可配置集群。
使用自动脚本安装,步骤如下:
1、git clone https://github.com/hqh546020152/azkaban_install.git
2、cd azkaban_install && sh azkaban_install.sh
依赖环境:jdk1.8以上(请提前配置好)
1、下载源码
cd ~
git clone https://github.com/azkaban/azkaban.git
2、编译成tar包(如果不是第一次构建需要先clean,执行:./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、数据库创建及数据结构导入
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
参考如下信息
以上配置完成之后会在当前目录生成一个keystore文件;
7、配置conf/azkaban.properties:
如果Azkaban WebServer下面没有conf目录,将azkaban-solo-web 下的conf目录拷贝过来。
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、创建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、 用户设置
进入 azkaban web 服务器 conf 目录, azkaban-users.xml
10、启动azkaban web服务器
cd /opt/azkaban-web-server-3.44.0-2-ga7b0fa4/
sh bin/azkaban-web-start.sh
11、访问验证https://ip:8443/
用户名:azkaban
密码:azkaban
Azkaban Executor Server 安装和配置
进入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) 启动执行服务器(这里也会出现web启动出现的问题,相同处理):
sh bin/azkaban-executor-start.sh
3) 分布式配置注意事项
以确认使用的是分布式方式,随后提交的job会根据情况自行选择执行服务器,否则默认只使用本地执行服务器,切记!
之后需要在mysql的azkaban库中添加各个执行服务器的ip/域名和端口:
insert into executors(host,port) values("EXECUTOR_PORT",EXECUTOR_PORT);
参考资料:
http://blog.csdn.net/zk673820543/article/details/76984947
问题处理参考资料:
https://my.oschina.net/puwenchao/blog/1504739
https://www.cnblogs.com/zlslch/p/7124229.html
集群参考资料:
http://blog.csdn.net/jacklin929/article/details/53742638
http://blog.csdn.net/huohuotu/article/details/77487007