Azkaban的安装和使用

来源:互联网 发布:知党史 编辑:程序博客网 时间:2024/05/16 15:24

什么是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 Settingsazkaban.name=BigDataazkaban.label=My Local Azkabanazkaban.color=#FF3601azkaban.default.servlet.path=/indexweb.resource.dir=web/default.timezone.id=Asia/Shanghai#Azkaban UserManager classuser.manager.class=azkaban.user.XmlUserManageruser.manager.xml.file=conf/azkaban-users.xml#Loader for projectsexecutor.global.properties=conf/global.propertiesazkaban.project.dir=projectsdatabase.type=mysqlmysql.port=3306mysql.host=localhostmysql.database=azkaban3mysql.user=azkabanmysql.password=123456mysql.numconnections=100# Velocity dev modevelocity.dev.mode=false# Azkaban Jetty server properties.jetty.maxThreads=25jetty.ssl.port=8443jetty.port=8081jetty.keystore=key/keystorejetty.password=123456jetty.keypassword=123456jetty.truststore=key/truststorejetty.trustpassword=123456# Azkaban Executor settingsexecutor.port=12321# mail settingsmail.sender=mail.host=job.failure.email=job.success.email=lockdown.create.projects=falsecache.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   #数据库类型为mysqlmysql.port=3306     mysql.host=localhost  #mysql的主机地址mysql.database=azkaban  #数据库名称,之前创建好的mysql.user=azkaban  #数据库用户名,之前创建的mysql.password=123456 #数据库密码,之前创建的mysql.numconnections=100 #最大连接数,默认jetty.maxThreads=25 jetty.ssl.port=8443jetty.port=8081jetty.keystore=key/keystore  #改为key-tool生成的keystorejetty.password=123456       #key-tool设置的密码jetty.keypassword=123456jetty.truststore=key/truststore #改为key-tool生成的trusttorejetty.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>
原创粉丝点击