Azkaban操作手册

2020-04-13  本文已影响0人  叫小七的剑客

首页有四个菜单

创建工程:

主要介绍projects部分 首先创建一个工程,填写名称和描述,比如o2olog。

o2olog工程

Flows:工作流程,有多个job组成 Permissions:权限管理 Project Logs:工程日志

创建之前我们先了解下之间的关系,一个工程包含一个或多个flows,一个flow包含多个job。job是你想在azkaban中运行的一个进程,可以是简单的linux命令,可是java程序,也可以是复杂的shell脚本,当然,如果你安装相关插件,也可以运行插件。一个job可以依赖于另一个job,这种多个job和它们的依赖组成的图表叫做flow。

flows创建

flow是一系列job的集合,一个模块的逻辑表示。下面举例一个将日志文件落入hive表中的简单功能

定义5个作业:

  1. o2o_2_hive:将清洗完的数据入hive库
  2. o2o_clean_data:调用mr清洗hdfs数据
  3. o2o_up_2_hdfs:将文件上传至hdfs
  4. o2o_get_file_ftp1:从ftp1获取日志
  5. o2o_get_file_fip2:从ftp2获取日志

依赖关系: 3依赖4和5,2依赖3,1依赖2,4和5没有依赖关系。

  1. 创建flow20.project文件,填入:

azkaban-flow-version: 2.0

  1. 新建o2olog.flow,用以定义作业流和作业

nodes:定义工作流的开始

name:工作流或作业的名字

type:flow代表作业流,command代表作业

config:定义作业的配置

command:定义作业实际执行的命令

dependsOn:定义作业流或作业的依赖

建议将命令都写入脚本中,command中调用该脚本,并且将脚本和上面新建的两个工作流配置文件打入一个zip包中,配置文件中调用的脚本路径相对于zip包中路径。(方便后期维护处理),将zip包上传至azkaban ps:为了测试流程,我将上述command都改为echo +相应命令

上传:

点击o2o_2_hive进入流程,azkaban流程名称以最后一个没有依赖的job定义的。

其他job配置选项

type: command

config:
command=echo "hello"
command.1=echo "world"

type: command

config:
command=wget "ftp://file1" -O /data/file1
retries=12

单位毫秒 retry.backoff=300000

执行flow

右上方是配置执行当前流程或者执行定时流程。

Flow view:流程视图。可以禁用,启用某些job
Notification:定义任务成功或者失败是否发送邮件 Failure Options:定义一个job失败,剩下的job怎么执行 Concurrent:并行任务执行设置 Flow Parametters:参数设置。

1、执行一次 设置好上述参数,点击execute。

绿色代表成功,蓝色是运行,红色是失败。可以查看job运行时间,依赖和日志,点击details可以查看各个job运行情况。




2、定时执行



可以通过设置执行计划,具体设置和linux下crontab类似。上图中设置了每天0点执行该计划,可以看到接下来10次的执行时间点,也可以通过首页菜单栏中的Scheduling中查看计划

3、执行失败时的处理

job执行时难免会报错

可以通过log先查看大致错误

有时通过这里的日志并不能确定具体问题,这时得登录服务器,通过脚本的输出日志查看具体问题



在排查错误后,修改脚本重新上传至项目中,找到上次失败的执行任务



找到任务id,点进去再次执行


可以看到,上次执行成功的任务会自动跳过,直接执行失败的任务

上一篇 下一篇

猜你喜欢

热点阅读