Azkaban

一、安装部署

(1)在/usr/local/目录下创建 azkaban 目录,将azkaban-web-server-2.5.0.tar.gz、 azkaban-executor-server-2.5.0.tar.gz、 azkaban-sql-script-2.5.0.tar.gz 三个包上传到目录下并解压分别重命名为 server 和 executor 。
(2)进入 mysql,创建 azkaban 数据库,并将 azkaban-sql-script-2.5.0.tar.gz 解压的脚本导入到 azkaban 数据库。

mysql -uroot -p199032
create database azkaban; 
use azkaban;
source /usr/local/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql;

(3)生成密钥对和证书(在server目录下执行命令,因为 azkaban 的页面是需要https的)

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

在这里插入图片描述
(4)时间同步配置
(5)Web 服务器配置

cd /usr/local/azkaban/server/conf

a、修改 azkaban.properties 文件(标注修改的部分)

#Azkaban Personalization Settings
#服务器 UI 名称,用于服务器上方显示的名字
azkaban.name=Test
#描述
azkaban.label=My Local Azkaban
#UI 颜色
azkaban.color=#FF3601 azkaban.default.servlet.path=/index
#(修改)默认 web server 存放 web 文件的目录
web.resource.dir=/usr/local/azkaban/server/web/
#(修改)默认时区,已改为亚洲/上海 默认为美国
default.timezone.id=Asia/Shanghai

#Azkaban UserManager class user.manager.class=azkaban.user.XmlUserManager
#(修改)用户权限管理默认类(绝对路径)
user.manager.xml.file=/usr/local/azkaban/server/conf/azkaban-users.xml

#Loader for projects
#(修改)global 配置文件所在位置(绝对路径)
executor.global.properties=/usr/local/azkaban/executor/conf/global.properties
azkaban.project.dir=projects
#数据库类型
database.type=mysql
#端口号
mysql.port=3306
#(修改)数据库连接 IP
mysql.host=hadoop114
#数据库实例名
mysql.database=azkaban
#数据库用户名
mysql.user=root
#(修改)数据库密码
mysql.password=199032
#最大连接数
mysql.numconnections=100

# Velocity dev mode 
velocity.dev.mode=false

# Azkaban Jetty server properties.
# Jetty 服务器属性.
#最大线程数
jetty.maxThreads=25
#Jetty SSL 端口
jetty.ssl.port=8443
#Jetty 端口
jetty.port=8081
#(修改)SSL 文件名,客户端用来判断服务端发过来的证书是否可信(绝对路径)
jetty.keystore=/usr/local/azkaban/server/keystore
#(修改)SSL 文件密码,生成时候输入的
jetty.password=123456
#(修改)Jetty 主密码与 keystore 文件相同
jetty.keypassword=123456
#(修改)SSL 文件名,服务端用来判断客户端发过来的证书是否可信(绝对路径)
jetty.truststore=/usr/local/azkaban/server/keystore
#(修改)SSL 文件密码
jetty.trustpassword=123456

# Azkaban Executor settings 
executor.port=12321

# mail settings 
#(修改)配置邮箱的发送者
mail.sender= wokoone@163.com
mail.host= smtp.163.com
mail.user= wokoone@163.com
#邮箱客户端的授权密码
mail.password= wang199032
job.failure.email= 
job.success.email=
lockdown.create.projects=false 
cache.directory=cache

配置邮箱客户端的授权密码
在这里插入图片描述
等启动成功之后在页面上配置邮件接收者
在这里插入图片描述
b、修改 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>

(6)执行服务器配置

cd /usr/local/azkaban/executor/conf

a、修改 azkaban.properties 文件(标注修改的部分)

#Azkaban
#(修改)时区 
default.timezone.id=Asia/Shanghai

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

#(修改)Loader for projects 
executor.global.properties=/usr/local/azkaban/executor/conf/global.properties
azkaban.project.dir=projects

database.type=mysql 
mysql.port=3306 
mysql.host=hadoop114
mysql.database=azkaban 
mysql.user=root 
mysql.password=199032 
mysql.numconnections=100

# Azkaban Executor settings
#最大线程数 
executor.maxThreads=50
#端口号(如修改,请与 web 服务中一致) 
executor.port=12321
#线程数 
executor.flow.threads=30

(7)启动、停止Executor 服务器,在 azkaban 根目录下执行命令

./executor/bin/azkaban-executor-start.sh
./executor/bin/azkaban-executor-shutdown.sh

(8)启动 Web 服务器

./server/bin/azkaban-web-start.sh

注意:先执行 executor,再执行 web,避免 Web Server 会因为找不到执行器启动失败。
(9)访问页面,在登录中输入刚才在 azkaban-users.xml 文件中新添加的户用名及密码,注意:(显示不是安全连接,点击高级,继续前往)。

https://hadoop114:8443

二、Azkaban 实战

1、单一 job 案例

(1)在桌面创建 job 描述文件

vim first.job

第一种形式:直接输出

#first.job 
type=command
command=echo 'this is my first job'

第二种形式:执行脚本

#first.job 
type=command
command=sh p1.sh

p1.sh

date >> /usr/local/test/test.txt

(2)将 job 资源文件打包成 zip 文件并上传(注意:目前,Azkaban 上传的工作流文件只支持 xxx.zip 文件。zip 应包含 xxx.job 运行作业所需的文件和任何文件(文件名后缀必须以.job 结尾,否则无法识别)。作业名称在项目中必须是唯一的。)
在这里插入图片描述
在这里插入图片描述

2、多 job 工作流案例

(1)在桌面创建4个 job 描述文件,执行流程为 1先执行,然后2和3并行执行,最后执行4。
first.job

type=command
command=echo "first"

second.job

type=command
command=echo "second"
#依赖的上一个任务的文件名,多个以逗号分隔,上一个执行完之后才执行
dependencies=first

third.job

type=command
command=echo "third"
#依赖的上一个任务的文件名,多个以逗号分隔,上一个执行完之后才执行
dependencies=first

fouth.job

type=command
command=echo "fouth"
#依赖的上一个任务的文件名,多个以逗号分隔,上一个执行完之后才执行
dependencies=second,third

(2)4个文件打成一个zip包,名字随意,上传至服务并执行。

3、调度 java 程序

(1)使用 Azkaban 调度 java 程序

package com.wang;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @Author: wang
 * @Date: 2020/2/4 15:41
 * @Description:
 */
public class AzkabanTest {
    public void run() throws IOException {
        FileOutputStream fos = new FileOutputStream("/usr/local/azkaban/test.txt");
        fos.write("this is a java progress".getBytes());
        fos.close();
    }

    public static void main(String[] args) throws IOException {
        AzkabanTest azkabanTest = new AzkabanTest();
        azkabanTest.run();
    }
}

(2)编写 job 文件

type=javaprocess
java.class=com.wang.AzkabanTest
#程序打完jar包的名字
classpath=./xxx.jar

(3)将文件和jar包打成zip包上传至服务并执行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值