azkaban安装

经过自己源码编译失败,版本问题等等, azkaban终于搞好了,最后选了2.5.0版本

一、azkaban介绍

Azkaban是由Linkedin开源的一个批处理工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。它的功能主要有以下特点:

1、web用户界面

2、方便上传工作流

3、方便设置任务之间的关系

4、调度工作流

5、认证/授权(权限的工作)

6、能够杀死并重新启动工作流

7、模块化和可插拔的插件机制

8、项目工作区

9、工作流和任务的日志记录和审计
**

二、azkaban安装部署

资源链接
链接:https://pan.baidu.com/s/1WRnE0xRTJAG2xxaqqZYXAA
提取码:ozyr

目前azkaban只支持mysql,需要在服务器上安装mysql,并建立用户和密码

2.2 安装azkaban

2.2.1、在服务器中创建azkaban目录

mkdir azkaban

2.2.2、将安装包上传到azkaban目录中,进行解压

tar -zxvf azkaban-sql-script-2.5.0.tar.gz
tar -zxvf azkaban-executor-server-2.5.0.tar.gz
tar -zxvf azkaban-web-server-2.5.0.tar.gz

2.2.3、为了后续操作简单,解压后的文件重新命名

mv azkaban-web-2.5.0 server
mv azkaban-executor-2.5.0 executor

2.2.4、azkaban脚本导入
进入mysql,创建azkaban数据库,并将解压的脚本导入到azkaban数据库。

mysql> create database azkaban;
mysql> use azkaban;
mysql> source /usr/local/modules/create-all-sql-2.5.0.sql;

2.3 创建SSL配置

1、生成keystore的密码及相应信息

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

输入keystore密码:

再次输入新密码:

您的名字与姓氏是什么?

[Unknown]:

您的组织单位名称是什么?

[Unknown]:

您的组织名称是什么?

[Unknown]:

您所在的城市或区域名称是什么?

[Unknown]:

您所在的州或省份名称是什么?

[Unknown]:

该单位的两字母国家代码是什么

[Unknown]:CN

CN=Unknown,

OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正确吗?

[否]:y

输入的主密码

    (如果和 keystore 密码相同,按回车):

再次输入新密码:

为了方便我把所有的密码都设置成了123456

2、将keystore拷贝到azkaban web服务器根目录中:

cp keystore /usr/local/modules/azkaban/server/

2.5 配置文件

2.5.1 web服务器配置
1、进入azkaban web服务器安装目录conf目录,打开azkaban.properties文件
2、按照如下配置修改azkaban.properties文件

#Azkaban Personalization Settings

azkaban.name=Test                            #服务器UI名称,用于服务器上方显示的名字(可以自己设置)

azkaban.label=My Local

Azkaban                                                                  #描述

azkaban.color=#FF3601                                          #UI颜色

azkaban.default.servlet.path=/index                        #

web.resource.dir=web/                                            #默认根web目录

default.timezone.id=Asia/Shanghai                         #默认时区,已改为亚洲/上海 默认为美国

#Azkaban UserManager class

user.manager.class=azkaban.user.XmlUserManager  #用户权限管理默认类

user.manager.xml.file=/root/azkaban/server/conf/azkaban-users.xml   #用户配置(最好写成绝对地址)

#Loader for projects

executor.global.properties=conf/global.properties   # global配置文件所在位置

azkaban.project.dir=projects                                               #

database.type=mysql                                                           #数据库类型

mysql.port=3306                                                                  #端口号

mysql.host=root                                                                   #数据库连接IP

mysql.database=azkaban                                                    #数据库实例名

mysql.user=root                                                                   #数据库用户名

mysql.password=123456                                                      #数据库密码

mysql.numconnections=100                                                 #最大连接数
# Velocity dev mode

velocity.dev.mode=false     
# Jetty服务器属性.

jetty.maxThreads=25                                                              #最大线程数

jetty.ssl.port=8443                                                                  #Jetty SSL端口

jetty.port=8081                                                                        #Jetty端口

jetty.keystore=keystore                                                        #SSL文件名

jetty.password=123456                                                        #SSL文件密码

jetty.keypassword=123456                                       #Jetty主密码 与 keystore文件相同

jetty.truststore=keystore                                                       #SSL文件名

jetty.trustpassword=123456                                                 #SSL文件密码

# 执行服务器属性

executor.port=12321                                                              #执行服务器端口

#邮件设置

mail.sender=xxxxxxxx@163.com                                           #发送邮箱 

mail.host=smtp.163.com                                                       #发送邮箱smtp地址

mail.user=xxxxxxxx                                                              #发送邮件时显示的名称

mail.password=**********                                                #邮箱密码

job.failure.email=xxxxxxxx@163.com                             #任务失败时发送邮件的地址

job.success.email=xxxxxxxx@163.com                           #任务成功时发送邮件的地址

lockdown.create.projects=false                                          #

cache.directory=cache                                                        

3、web服务器用户配置
在azkaban web服务器安装目录conf目录,按照如下配置修改azkaban-users.xml文件,增加管理员用户。

<azkaban-users>

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

<user username="metrics" password="metrics" roles="metrics"/>

<user username="admin" password="admin" roles="admin,metrics" />(自己添加)

<role name="admin" permissions="ADMIN" />

<role name="metrics" permissions="METRICS"/>

</azkaban-users>

2.5.2 执行服务器配置
1、进入执行服务器安装目录conf下,打开azkaban.properties
2、编辑azkaban.properties文件

#Azkaban

default.timezone.id=Asia/Shanghai                           #时区

# Azkaban JobTypes 插件配置

azkaban.jobtype.plugin.dir=plugins/jobtypes    #jobtype插件所在位置

#Loader for projects

executor.global.properties=conf/global.properties

azkaban.project.dir=projects

#数据库设置

database.type=mysql                                        #数据库类型(目前只支持mysql)

mysql.port=3306                                                 #数据库端口号

mysql.host=localhost                                #数据库IP地址

mysql.database=azkaban                                    #数据库实例名

mysql.user=root                                                   #数据库用户名

mysql.password=123456                                    #数据库密码

mysql.numconnections=100                               #最大连接数

# 执行服务器配置

executor.maxThreads=50                                      #最大线程数

executor.port=12321                                           #端口号(如修改,请与web服务中一致)

executor.flow.threads=30                                    #线程数

2.6 启动web服务器
在azkaban web服务器目录下执行启动命令

server#  bin/azkaban-web-start.sh

2.7启动执行服务器
在执行服务 器目录下执行启动命令

executor # bin/azkaban-executor-start.sh

启动完成后,在浏览器(建议使用谷歌浏览器)中输入https://服务器IP地址:8443,即可访问azkaban服务了。在登录中输入刚才新的户用名及密码(默认用户名和密码都是azkaban),点击 login。
在这里插入图片描述

三、安装过程有可能出现的问题

问题1、启动azkaban时出现user xml file conf/azkaban-users.xml doesn’t exit
在这里插入图片描述
这个问题我们在安装的时候已经提出来,就是在2.5.1步骤中配置/root/azkaban/server/conf目录下的azkaban.properties文件,将azkaban-users.xml路径改成绝对路径
在这里插入图片描述
接着再重新启动一下试试。
问题2、启动azkaban出现错误:Exception in thread “main” java.lang.NoClassDefFoundError: Could not initialize class org.apache.derby.jdbc.AutoloadedDriver40

这个问题是“NoClassDefFoundError”是启动azkaban时并没有找到类;“Could not initialize class org.apache.derby.jdbc.AutoloadedDriver40” 时azkaban的server和executor中缺少一个叫derby.jar的包,我在github上第四个文件就是下载的derby的一个jar包,解压出来找到derby.jar,然后上传到/root/azkaban/server/lib和/root/azkaban/executor/lib目录中,然后重新启动试试。

问题3、启动时azkaban 提交 job报错:Error submitting flow command. org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:12321 refused

导致的这个问题的原因可能是123321端口已经开启,产生了冲突

解决办法:

排查 azkaban 执行服务器有没有启动。使用 jps 命令查看:

AzkabanExecutorServer

AzkabanWebServer

四、azkaban实战

Azkaban内置的任务类型支持command、java

1、command类型之单一job案例
a、创建job描述文件(文件类型一定是.job格式)
在这里插入图片描述
b、将job资源文件打包成zip文件
在这里插入图片描述
c、通过azkaban的web管理平台创建project并上传job压缩包

首先创建project
在这里插入图片描述
在这里插入图片描述
d、启动执行该job
在这里插入图片描述
绿色:执行成功

蓝色:正在执行

红色:执行失败

这里是绿色说明执行成功。这里特别注意一下:command.job如果是windows系统下创建的可能会报错,这时候尽量是在linux系统下(比如服务器)创建该文件然后编辑打包上传。

2、command类型之多job工作流案例

2.1 创建有依赖关系的多个job描述
第一个job:master.job
在这里插入图片描述
第二个job:slave.job
在这里插入图片描述
2.3 创建工程
在这里插入图片描述
2.4 在azkaban的web管理界面创建工程并上传zip包
在这里插入图片描述
2.5 启动工作流并查看结果
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值