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

或打包为zip包

./gradlew distZip

用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;

创建用户azkaban

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

授于azkaban用户权限

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

然后创建表,这里使用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;

配置参数
从源码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

主要配置项

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设置的密码

配置key-tool

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

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

3.启动azkaban-web-server

在azkaban-web-server目录下执行

bin/azkaban-web-start.sh

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

bin/azkaban-executor-start.sh

停止azkaban-web-server

bin/azkaban-web-shutdown.sh

如果启动时报错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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值