天天看点

大数据-Azkaban实战

3. Azkaban实战

Azkaba内置的任务类型支持command、java

3.1. Command 类型单一 Job 示例

Step 1: 创建 Job 描述文件

创建文本文件,更改名称为mycommand.job 注意后缀.txt一定不要带上,保存为格式为

UFT-8 without bom

内容如下

type=command 
command=echo 'hello world'
           

Step 2: 将job资源文件打包成zip文件

大数据-Azkaban实战

Step 3: 创建project并上传压缩包

通过azkaban的web管理平台创建project并上传job压缩包

首先创建project

大数据-Azkaban实战

上传zip包

大数据-Azkaban实战

Step 4: 启动执行job

大数据-Azkaban实战

3.2. Command 类型多 Job 示例

Step 1: 创建有依赖关系的多个job描述

第一个job:foo.job

type=command 
command=echo 'foo'
           

第二个job:bar.job依赖foo.job

type=command 
command=echo 'bar' 
dependencies=foo
           

Step 2: 将所有job资源文件打到一个zip包中

大数据-Azkaban实战

Step 3: 在azkaban的web管理界面创建工程并上传zip包

Step 4: 启动工作流flow

3.3. HDFS 操作任务

Step 1: 创建job描述文件fs.job

type=command 
command=/export/servers/hadoop‐3.1.1/bin/hdfs dfs ‐mkdir /azkaban
           

大数据-Azkaban实战

Step 3: 通过azkaban的web管理平台创建project并上传job压缩包

Step 4: 启动执行该job

3.4. MapReduce 任务

MR 任务依然可以使用command的job类型来执行

Step 1: 创建job描述文件,及mr程序jar包(示例中直接使用hadoop自带的example jar)

type=command 
command=/export/servers/hadoop‐3.1.1/bin/hadoop jar hadoop‐mapreduce‐ examples‐3.1.1.jar pi 3 5
           

大数据-Azkaban实战

Step 4: 启动job

3.5. Hive 脚本任务

Step 1: 创建job描述文件和hive脚本

create database if not exists azhive; 
use azhive; 
create table if not exists aztest(id string,name string) row format 
delimited fields terminated by '\t';
           

Step 2: Job描述文件:hive.job

type=command 
command=/export/servers/apache‐hive‐3.1.1‐bin ‐f 'hive.sql'
           

Step 3: 将所有job资源文件打到一个zip包中

Step 4: 在azkaban的web管理界面创建工程并上传zip包

Step 5: 启动job

3.6. Azkaban 的定时任务

  • */1 * ? * *

    每分钟执行一次定时调度任务
  • 0 1 ? * *

    每天晚上凌晨一点钟执行这个任务
  • 0 */2 ? * *

    每隔两个小时定时执行这个任务
  • 30 21 ? * *

    每天晚上九点半定时执行这个任务

继续阅读