Azkaban3.X安装搭建

安装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