【Azkaban】使用方式

191 阅读2分钟

这是我参与11月更文挑战的第23天,活动详情查看:2021最后一次更文挑战

一、shell command 调度

  1. 创建 job 描述文件
vi command.job


# 添加如下

type=command
command=echo 'hello'
  1. job 资源文件打包成 zip 文件
zip command.job
  1. 通过 azkabanweb 管理平台创建 project 并上传 job 压缩包
  • 创建 Project
  • 上传 zip
  • 启动执行该 job

二、Job 依赖调度

创建有依赖关系的多个 job 描述 bar.job 依赖 foo.job

  1. 创建 foo.job
vi foo.job

# 添加如下

type=command
command=echo 'foo'
  1. 创建 bar.job

bar.job 依赖 foo.job

vi bar.job

# 添加如下

type=command
dependencies=foo
command=echo 'bar'
  1. 将所有 job 资源文件打到一个 zip 包中

  2. azkabanweb 管理界面创建工程并上传 zip

  3. 启动工作流 flow

三、HDFS 任务调度

  1. 创建 job 描述文件
vi fs.job


# 添加如下:

type=command
command=/opt/lagou/servers/hadoop-2.9.2/bin/hadoop fs -mkdir /azkaban
  1. 打包生成

  2. 通过 azkabanweb 管理平台创建 project 并上传 job 压缩包

四、MapReduce 任务调度

mr 任务依然可以使用 commandjob 类型来执行

  1. 创建 job 描述文件, 及 mr 程序 jar

示例中直接使用 hadoop 自带的 example jar

vi mrwc.job

# 添加如下:

type=command
command=/opt/lagou/servers/hadoop-2.9.2/bin/hadoop jar hadoop-mapreduce-examples-2.9.2.jar wordcount /wordcount/input /wordcount/azout
  1. 将所有 job 资源文件打到一个 zip 包中

  2. azkabanweb 管理界面创建工程并上传 zip

  3. 启动 job

遇到虚拟机内存不足情况:

  1. 增大机器内存
  2. 使用清除系统缓存命令,暂时释放一些内存
[root@linux123 mapreduce]# echo 1 >/proc/sys/vm/drop_caches
[root@linux123 mapreduce]# echo 2 >/proc/sys/vm/drop_caches
[root@linux123 mapreduce]# echo 3 >/proc/sys/vm/drop_caches

五、Hive 脚本任务调度

  1. 创建 job 描述文件
vi hivef.job

# 添加如下:

type=command
command=/opt/lagou/servers/hive-2.3.7/bin/hive -f 'test.sql'
  1. 创建 hive 脚本
vi hive.sql

# 添加如下:

use default;
drop table aztest;
create table aztest(id int,name string) row format delimited fields terminated by ',';
  1. 将所有 job 资源文件打到一个 zip 包中创建工程并上传 zip 包, 启动 job

六、定时任务调度

除了手动立即执行工作流任务外, azkaban 也支持配置定时任务调度。

开启方式如下:

  • 首页选择待处理的 project

  • 选择左边 schedule 表示配置定时调度信息, 选择右边 execute 表示立即执行工作流任务。