Azkaban的安装和使用

什么是azkaban

Azkaban是一款基于Java编写的任务调度系统 
任务调度 
任务调度:有四个任务脚A、B、C、D,其中任务A与任务B可以并行运行,然后任务C依赖任务A和任务B的运行结果,任务D依赖任务C的运行结果,此时整个过程可以等效为一个有向无环图,而给所有的任务运行定一个运行规则就可以理解为任务调度

AzKaban组成

  1. MySQL数据库
  2. azkaban-server : web端
  3. azkaban-executor :执行job

AzKaban安装

1.编译source

ankaban目前最新版本是3.x,没有二进制包,需要对源码进行build后再使用 
source地址:点击下载 
下载后执行构建命令 
打包为tar.gz包

./gradlew distTar
 
 
  • 1
  • 1

或打包为zip包

./gradlew distZip
 
 
  • 1
  • 1

用gradle构建,构建的时候如果没有安装gradle,会自动先下载gradle,然后会构建 
这里写图片描述

构建后进入azkaban-web-server/build/distributions/中,该目录下是构建后的包azkaban-web-server-0.1.0-SNAPSHOT.zip 
同样进入azkaban-exec-server/build/distributions/中,该目录下是构建后的包azkaban-exec-server-0.1.0-SNAPSHOT.zip 
同样进入azkaban-sql/build/distributions/中,该目录下是构建后的包azkaban-sql-0.1.0-SNAPSHOT.zip 
解压上面三个包,进行配置后就可以使用了

2.安装

安装MySQL:因为azkaban的数据存储在mysql中,所以需要安装MySQL,我已经安装了MySQL,这里不做介绍了 
创建azkaban数据库 
在MySQL终端执行

create database azkaban;
 
 
  • 1
  • 1

创建用户azkaban

CREATE USER 'azkaban'@'localhost' identified by '123456';
 
 
  • 1
  • 1

授于azkaban用户权限

GRANT ALL ON azkaban.* to 'azkaban'@'localhost';
 
 
  • 1
  • 1

然后创建表,这里使用azkaban-sql-0.1.0-SNAPSHOT.zip解压后的create-all-sql-0.1.0-SNAPSHOT.sql脚本 
在MySQL终端执行

source create-all-sql-0.1.0-SNAPSHOT.sql;
 
 
  • 1
  • 1

配置参数 
从源码build后azkaban-web-server目录下只有4个文件夹 
这里写图片描述

没有conf目录,解决办法,从azkaban-soloserver目录下拷贝conf到azkaban-web-serber下 
conf配置文件 
这里写图片描述 
azkaban.properties

#Azkaban Personalization Settings
azkaban.name=BigData
azkaban.label=My Local Azkaban
azkaban.color=#FF3601
azkaban.default.servlet.path=/index
web.resource.dir=web/
default.timezone.id=Asia/Shanghai

#Azkaban UserManager class
user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml

#Loader for projects
executor.global.properties=conf/global.properties
azkaban.project.dir=projects

database.type=mysql
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban3
mysql.user=azkaban
mysql.password=123456
mysql.numconnections=100

# Velocity dev mode
velocity.dev.mode=false

# Azkaban Jetty server properties.
jetty.maxThreads=25
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=key/keystore
jetty.password=123456
jetty.keypassword=123456
jetty.truststore=key/truststore
jetty.trustpassword=123456

# Azkaban Executor settings
executor.port=12321

# mail settings
mail.sender=
mail.host=
job.failure.email=
job.success.email=

lockdown.create.projects=false

cache.directory=cache
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

主要配置项

default.timezone.id=Asia/Shanghai #将时区改为上海
database.type=mysql   #数据库类型为mysql
mysql.port=3306     
mysql.host=localhost  #mysql的主机地址
mysql.database=azkaban  #数据库名称,之前创建好的
mysql.user=azkaban  #数据库用户名,之前创建的
mysql.password=123456 #数据库密码,之前创建的
mysql.numconnections=100 #最大连接数,默认


jetty.maxThreads=25 
jetty.ssl.port=8443
jetty.port=8081
jetty.keystore=key/keystore  #改为key-tool生成的keystore
jetty.password=123456       #key-tool设置的密码
jetty.keypassword=123456
jetty.truststore=key/truststore #改为key-tool生成的trusttore
jetty.trustpassword=123456   #key-tool设置的密码
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

配置key-tool

>keytool -keystore keystore -alias jetty -genkey -keyalg RSA
 
 
  • 1
  • 1

在提示中输入密码123456(上面设置的) 
最后一路回车会生成两个文件 keystore,truststore 
我将他们放在azkaban-web-server下的key目录

3.启动azkaban-web-server

在azkaban-web-server目录下执行

bin/azkaban-web-start.sh
 
 
  • 1
  • 1

启动azkaban-exec-server 
在azkaban-exec-server目录下执行

bin/azkaban-executor-start.sh
 
 
  • 1
  • 1

停止azkaban-web-server

bin/azkaban-web-shutdown.sh
 
 
  • 1
  • 1

如果启动时报错java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "main",需要在conf目录下创建log4j.properties日志文件

4.访问azkaban

问azkaban 
https://localhost:8443/ 
登录密码:azkaban/azkaban 
这里写图片描述

用户可以在conf/azkaban_user.xml中添加

<azkaban-users>
    <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />
    <user username="metrics" password="metrics" roles="metrics"/>

    <role name="admin" permissions="ADMIN" />
    <role name="metrics" permissions="METRICS"/>
</azkaban-users>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值