Azkaban的安装,集群及使用(一)

Azkaban的介绍:

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

功能特点:

1、Web用户界面
2、方便上传工作流
3、方便设置任务之间的关系
4、调度工作流
5、认证/授权(权限的工作)
6、能够杀死并重新启动工作流
7、模块化和可插拔的插件机制
8、项目工作区
9、工作流和任务的日志记录和审计

Azkaban与Oozie对比

u 资源管理

Azkaban有较严格的权限控制,如用户对工作流进行读/写/执行等操作

Oozie暂无严格的权限控制

u 工作流执行

Azkaban有两种运行模式,分别是soloserver mode(executor server和web server部署在同一台节点)和multi server mode(executor server和web server可以部署在不同节点)
u 工作流传参

Azkaban支持直接传参,例如${input}

Oozie支持参数和EL表达式,例如${fs:dirSize(myInputDir)}

u 定时执行

Azkaban的定时执行任务是基于时间的

Oozie的定时执行任务基于时间和输入数据

Azkaban和Airflow对比

Airflow基于Dag也可以定义复杂的工作流,属于Python技术栈。Azkaban属于Java
不建议使用Airflow,因为其管理界面实在太low了。

安装流程
azkaban web服务器安装

解压azkaban-web-server-2.5.0.tar.gz

命令: tar –zxvf azkaban-web-server-2.5.0.tar.gz

将解压后的azkaban-web-server-2.5.0 移动到 azkaban目录中,并重新命名 webserver

命令:

   mv azkaban-web-server-2.5.0 ../azkaban

   cd ../azkaban

   mv azkaban-web-server-2.5.0  server
azkaban 执行器安装

解压azkaban-executor-server-2.5.0.tar.gz

命令:tar –zxvf azkaban-executor-server-2.5.0.tar.gz

将解压后的azkaban-executor-server-2.5.0 移动到 azkaban目录中,并重新命名 executor

命令:

	mv azkaban-executor-server-2.5.0  ../azkaban

	cd ../azkaban

	mv azkaban-executor-server-2.5.0 executor
azkaban脚本导入

解压: azkaban-sql-script-2.5.0.tar.gz

命令:tar –zxvf azkaban-sql-script-2.5.0.tar.gz

将解压后的mysql 脚本,导入到mysql中:

进入mysql:

mysql> create database azkaban;

mysql> use azkaban;

Database changed

mysql> source 你的sql绝对路径/create-all-sql-2.5.0.sql;

在这里插入图片描述

创建SSL配置

命令: keytool -keystore keystore -alias jetty -genkey -keyalg RSA
在这里插入图片描述
将在当前目录生成 keystore 证书文件,将keystore 拷贝到 azkaban web服务器根目录中.如:cp keystore azkaban/webserver

配置文件

1、生成时区配置文件Asia/Shanghai

2、拷贝该时区文件,覆盖系统本地时区配置

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

azkaban web服务器配置

进入azkaban web服务器安装目录 conf目录

vim 修改azkaban.properties文件,一般修改的文件内容为:

azkaban.name=Test
azkaban.label=My Local Azkaban
# 数据库方面
mysql.port=3306
mysql.host=localhost
mysql.database=azkaban
mysql.user=azkaban
mysql.password=azkaban
mysql.numconnections=100
azkaban 执行服务器配置

进入执行executor服务器安装目录conf,修改azkaban.properties,基本与web修改的内容一致,修改数据库配置。
若有多台服务器需要连接azkaban使用,可以在其它服务器上安装执行器,将对应的服务器加入azkaban数据库的executors表,并激活。对应的主键id会非常重要
在这里插入图片描述

用户配置

进入azkaban web服务器conf目录,修改azkaban-users.xml,增加 管理员用户
在这里插入图片描述

启动

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

bin/azkaban-web-start.sh
或者后台启动:nohup ./bin/Azkaban-web.start.sh  >>  xxx.out&

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

./bin/azkaban-executor-start.sh

访问:https://localhost:8443 ,即可访问azkaban服务
在这里插入图片描述

Azkaban使用

1、添加项目projects
在这里插入图片描述
2、编程job文件(单一简单模式)

#command.job

type=command                                                    

command=echo 'hello world'

3、上传
在这里插入图片描述
4、执行
在这里插入图片描述
5、添加定时器和执行器选择
在这里插入图片描述
在这里插入图片描述

工作中使用

场景一:在docker外面访问docker里面的python执行

#xxxx
type = command
command = docker exec -w /code/azkaban 81023aqe1331 python manage.py test

场景二:访问本地的python项目

#xxxxx
type = command
command = python /home/host/azkaban/manage.py test

场景三:访问本地的py文件

#xxxxx
type = command
command = python /home/host/azkaban/test.py

场景四:访问一些shell

#xxxxx
type = command
command = sh /home/host/azkaban/test.sh

场景五:执行工作流flow
start.job

# start.job
type=command
command = echo 'start'

run_0.job

#sync_azkaban_test.py 0
type = command
command = docker exec -w /code/azkaban 8123qew131 python manage.py sync_azkaban_test 0
dependencies = start   # 依赖

run_1.job

#sync_azkaban_test.py 1
type = command
command = docker exec -w /code/azkaban 8123qew131 python manage.py sync_azkaban_test 1
dependencies = start   # 依赖

end.job

# end.job
type=command
command = echo 'end'
dependencies = run_0, run_1


这是一个工作流,可以缩短一个程序的执行时间,提高效率!相对来说比定时器要高效,简洁,可观很多!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值