首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Azkaban快速入门系列(3) | 一文带你快速了解Azkaban的实战应用(建议收藏!!!)

Azkaban快速入门系列(3) | 一文带你快速了解Azkaban的实战应用(建议收藏!!!)

作者头像
不温卜火
发布2020-10-28 16:39:53
发布2020-10-28 16:39:53
1.1K00
举报
文章被收录于专栏:不温卜火不温卜火
运行总次数:0

一. 实战前的准备

  • 1. 在executor服务器目录下执行启动命令
代码语言:javascript
代码运行次数:0
运行
复制
[bigdata@hadoop002 executor]$ bin/azkaban-executor-start.sh
  • 2. 在azkaban web服务器目录下执行启动命令
代码语言:javascript
代码运行次数:0
运行
复制
[bigdata@hadoop002 server]$ bin/azkaban-web-start.sh

注意: 先执行executor,再执行web,避免Web Server会因为找不到执行器启动失败

  • 3. jps查看进程
  • 4. web查看
  • 输入https://服务器IP地址:8443,即可访问azkaban服务。 https://hadoop002:8443/ 在登录中输入刚才在azkaban-users.xml文件中新添加的户用名及密码,点击 login。

二. 实战案例一:单一job案例

  • 1. 创建job描述文件
代码语言:javascript
代码运行次数:0
运行
复制
[bigdata@hadoop002 azkaban]$ mkdir jobs
[bigdata@hadoop002 jobs]$ vim first.job

// 内容
type=command
command=echo 'this is my first job'
  • 2. 将job资源文件打包成zip文件
代码语言:javascript
代码运行次数:0
运行
复制
[bigdata@hadoop002 jobs]$ zip first.zip first.job

注意: 目前,Azkaban上传的工作流文件只支持xxx.zip文件。zip应包含xxx.job运行作业所需的文件和任何文件(文件名后缀必须以.job结尾,否则无法识别)。作业名称在项目中必须是唯一的。

  • 3. 把压缩包拖动到真实主机上
  • 4. 通过azkaban的web管理平台创建project并上传job的zip包

① 创建project

②上传zip包

  • 5. 启动执行该job
  • 6. Job执行成功
  • 7. 点击查看job日志
  • 8. 查看执行的历史

三. 实战案例二:多job工作流案例

  • 1. 创建有依赖关系的多个job描述

第一个job:start.job

代码语言:javascript
代码运行次数:0
运行
复制
[bigdata@hadoop002 jobs]$ vim start.job
#start.job
type=command
command=touch /opt/module/buwenbuhuo.txt

第二个job:step1.job依赖start.job

代码语言:javascript
代码运行次数:0
运行
复制
[bigdata@hadoop002 jobs]$ vim step1.job
#step1.job
type=command
dependencies=start
command=echo "this is step1 job"

第三个job:step2.job依赖start.job

代码语言:javascript
代码运行次数:0
运行
复制
[bigdata@hadoop002 jobs]$ vim step2.job
#step2.job
type=command
dependencies=start
command=echo "this is step2 job"

第四个job:finish.job依赖step1.job和step2.job

代码语言:javascript
代码运行次数:0
运行
复制
[bigdata@hadoop002 jobs]$ vim finish.job
#finish.job
type=command
dependencies=step1,step2
command=echo "this is finish job"
  • 2. 将所有job资源文件打到一个zip包中
代码语言:javascript
代码运行次数:0
运行
复制
[bigdata@hadoop002 jobs]$ zip jobs.zip start.job step1.job step2.job finish.job
  • 3. 在azkaban的web管理界面创建工程并上传zip包
  • 4. 启动工作流flow
  • 5. Job执行成功

四. 实战案例三:java操作任务

使用Azkaban调度java程序

  • 1. 创建工程
  • 2. 项目代码
代码语言:javascript
代码运行次数:0
运行
复制
package com.buwenbuhuo.azkaban;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @author 卜温不火
 * @create 2020-05-19 12:40
 * com.buwenbuhuo.azkaban - the name of the target package where the new class or interface will be created.
 * azkaban0519 - the name of the current project.
 */
public class JavaJob {

    public static void main(String[] args) throws IOException {
        // 根据需求编写具体代码

        FileOutputStream fos = null;
        try {
           fos =  new FileOutputStream("/opt/module/azkaban_0519.txt");
           fos.write("this is a java job".getBytes());
        }catch (IOException e){
            e.printStackTrace();
        }finally {
           try{
               fos.close();
           } catch (IOException e){
               e.printStackTrace();
           }
        }
    }


}
  • 3. 打包成jar包并放到本地
  • 4. 在本地编写job文件并整理成压缩包
代码语言:javascript
代码运行次数:0
运行
复制
type=javaprocess
java.class=com.buwenbuhuo.azkaban.JavaJob
classpath=./azkaban-0519-1.0-SNAPSHOT.jar
  • 5. 通过azkaban的web管理平台创建project并上传job压缩包,启动执行该job
  • 6. 在Linux下查看文件
代码语言:javascript
代码运行次数:0
运行
复制
[bigdata@hadoop002 jobs]$ cd ..
[bigdata@hadoop002 azkaban]$ cd ..
[bigdata@hadoop002 module]$ ll

五. 实战案例四:HDFS操作任务

  • 1. 创建job描述文件并打包
代码语言:javascript
代码运行次数:0
运行
复制
#hdfs job
type=command
command=/opt/module/hadoop-2.7.2/bin/hadoop fs -mkdir /azkaban
  • 2. 通过azkaban的web管理平台创建project并上传job压缩包
代码语言:javascript
代码运行次数:0
运行
复制
// 先启动hdfs和yarn
[bigdata@hadoop002 module]$ start-dfs.sh 
[bigdata@hadoop003 module]$ start-yarn.sh 
  • 3. 运行job并在hdfs上查看

六. 实战案例五:mapreduce任务

mapreduce任务依然可以使用azkaban进行调度

  • 1.创建job描述文件,并生成zip包
代码语言:javascript
代码运行次数:0
运行
复制
#mapreduce job
type=command
command=/opt/module/hadoop-2.7.2/bin/hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output_0519
  • 2. 在azkaban的web管理界面创建工程并上传zip包
  • 3. 启动job
  • 4. 查看结果

  本次的分享就到这里了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. 实战前的准备
  • 二. 实战案例一:单一job案例
  • 三. 实战案例二:多job工作流案例
  • 四. 实战案例三:java操作任务
  • 五. 实战案例四:HDFS操作任务
  • 六. 实战案例五:mapreduce任务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档