Azkaban使用文档

Azkaban使用文档

1.Azkaban简介

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

它有如下功能特点:

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

2.Azkaban架构和运行模式

azkaban2overviewdesign

Azkaban有3种运行模式:

  • solo-servermode:

    使用自带的H2作为元数据库,web server和executor server运行在同一进程,适合测试和小型规模。

  • twoserver mode:

    适合生产环境,使用mysql作为元数据库,web server和executor server运行在不同的进程。

  • distributedmultiple-executor mode:

    适合大型的生产环境,使用mysql作为元数据库,web server和executor server 运行在不同的主机上。

3.Azkaban使用

创建job任务

在自己本地创建以.job结尾的文件

比如 foo.job,加入以下内容

  • foo.job

    type=command         #使用unix的bash命令
    command=echo "foo"   #执行一条bash

创建 bar.job ,加入以下内容

  • bar.job

    type=command
    
    command=echo "bar"
    
    dependencies=env       #这个任务依赖于env这个任务,如果依赖多个任务,则使用“,”隔开。

创建flow任务

如果一个工作流下需要嵌入一个子工作流,则需指定type为flow

创建test_flow.job,加入以下内容:

  • test_flow.job

    type=flow            # 添加子工作流
    dependencies=foo
    flow.name=test_flow  #子工作流结尾的名字

子工作流如下:

  • start.job

    type=command
    command=echo "test"
  • test_flow.job

    type=command
    dependencies=start
    command=echo "test_flow"

上传和执行任务

登陆azkaban web页面:https://localhost:8443/index

将编写的job脚本以zip格式压缩打包

在azkaban页面创建一个project,然后将任务上传

这里写图片描述

执行任务

这里写图片描述

  • 如果执行定时调度任务,则点击schedule
  • 如果不执行定时任务,则点击execute

参数配置

如果执行任务需要指定参数
比如在bar.job中需要指定运行参数

  • bar.job

    type=command
    
    command=echo ${day}
    
    dependencies=env 

传入参数:

  • 页面指定传参

这里写图片描述

  • 在job文件通目录下创建文件 system.properties

  • system.properties

    day=20180423

失败重试

  • 自动重试

    在job文件中配置:

    retries=2             #失败重试2次
    retry.backoff=300000  #单位毫秒
  • 手动重试

    手动设置重试策略

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值