Azkaban Flow Generator
Project description
Azkaban配置工具
根据Excel配置的作业流内容,生成yaml格式配置文件,打包上传到指定的AzkabanServer,并配置作业流调度
功能
- 配置project,创建projet
- 配置flow,创建flow文件
- 配置Azkaban Server地址,用户名,密码
- 按不同的project,打包成不同的zip文件,并上传到Server上
- 为每个flow提供调度配置,调度设置开关可开启和关闭
- 提供excel配置模板,按照配置一键配置提交值服务器
- 支持Windows,Mac OS,Linux及其他Unix系统
快速开始
环境需求:
- Python3.0+
- Apache Azkaban 3.90+
- Office Excel 或者 WPS
-
下载项目源码到本地
- Linux/OS/Unix
wget -O https://github.com/JingZhang-Cherish/azkaban_excel_yaml.zip
-
Windows 直接下载源码到本地
-
Git
git clone https://github.com/JingZhang-Cherish/azkaban_excel_yaml.git
-
编译源码
(可能需要联网下载依赖)
cd azkaban_excel_yaml #Linux/OS python setup.py install #Window python setup.py bdist_wininst
-
快速执行
修改docs/template.xlsx的config sheet页的Azkaban地址,用户名,密码
#执行生产和上传命令 azkaban_helper docs/template.xlsx
更多Excel内容详细配置,详见配置
配置
默认的模板中有5个sheet页,info,config,projects,scheduler,proA
- info:应用的相关版本信息和填写说明已经功能更新,无需填写
- config: 配置Azkaban的url,username,password等信息,sheet页名称不可更改
- projects:所有projcets,用于创建和上传的配置
- scheduler:是为已经配置的project添加和取消调度器,cron列是满足定时器表达式,详情可参考quartz-scheduler
- proA是一个项目的,这个sheet页的名称需要和projects的内容相同,否则可能出现无法上传的情况,如有多个project需要配置,则可以复制该sheet页,进行修改。
详细功能说明
详细配置步骤:
-
config页
,azkaban_url列为Azkaban Server的web 访问地址, 目前支持单个地址上传,后续版本可配置多个地址,且增加开关。建议配置具有ADMIN权限的用户,否则可能出现project创建失败的情况,详见Azkaban配置 -
projects
这里配置project_name和描述信息,如果描述信息中不支持写入中文,建议修改azkaban数据库的编码为utf-8 -
scheduler
调度页面为每个作业添加调度器,这里的调度器,必须是后续project已经配置过的flow才行。cron列是满足定时器表达式,详情可参考quartz-scheduler -
flow页面配置:
-
flow_desc和job_comment,这两列的值不会写入到flow中,不要改变每个列的顺序和标题。
-
从第二行开始为每个job的的配置细节,一组job组成一个flow,flow的参数可配置多个,多个key=value参数对使用
|
连接,首尾不需要。 -
每个flow,只需要为第一个job配置flow_configs即可,其他不需要,请把该flow的所有参数都配置在该flow的第一个job中。详见配置模板中的配置案例,如果你有一些大量重复使用的参数,例如昨日日期,建议配置在azkaban/executor/conf/global.properties中
dt=$(new("org.joda.time.DateTime").minusDays(1).toString("yyyyMMdd")) create_script=/home/pg/zhfd_script/public/create_done_file.sh
-
comman参数中使用flow_configs定义的参数时,需要使用${param_name}方式引用,部分内置参数可以参考Azkaban官网
-
dependOn列,被依赖的job必须配置在该job之前。多个依赖用
|
分隔,首尾不需要。
-
限制
- 如果你的Azkaban有使用到Trigger(触发器),以及Apache Kafka作为事件流的传递,目前版本还不支持配置
- 不支持Azkaban配置的全部API接口,目前仅调用了部分接口开发。
- 目前Azkaban的FLow配置版本为2.0的yaml格式,不支持生成1.0版本
- 目前功能仅支持,创建project,生成flow文件,打包flow文件成zip文件,上传到server,设置调度和取消调度
- 目前主要支持的jobtype主要是command,其他暂不支持
后续计划
新版本中会增加trigger的配置,SLA的配置,条件流,文档配置校验,多种jobtype支持等功能。
参考
Azkaban的安装和使用文档:https://azkaban.readthedocs.io/en/latest/getStarted.html
Azkaban的API接口文档:https://azkaban.readthedocs.io/en/latest/ajaxApi.html
Python 库 PyYAML,requests,xlrd,requests-toolbelt等等
联系方式
如果在使用过程中有任何疑问或者建议,请发送邮件到E-mail:cherish244612023@gmail.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for azkaban_helper-0.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8889e1f75e7549d5b6270ef7c77cb7935569570e0e44eebc78038584a59cde57 |
|
MD5 | e391e64ffd248c8aeb2897ebc9c2487b |
|
BLAKE2b-256 | 1c782b70066fda4390c14cfafa55422e8569c879b33348210e1b5b37dd247cbd |