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

举报
不温卜火 发表于 2021/01/07 19:22:40 2021/01/07
【摘要】   大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客...

  大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客主页:https://buwenbuhuo.blog.csdn.net/

  此篇为一文带你快速了解Azkaban的实战应用。


20

一. 实战前的准备

  • 1. 在executor服务器目录下执行启动命令
[bigdata@hadoop002 executor]$ bin/azkaban-executor-start.sh

  
 
  • 1

1

  • 2. 在azkaban web服务器目录下执行启动命令
[bigdata@hadoop002 server]$ bin/azkaban-web-start.sh

  
 
  • 1

2

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

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

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

  • 1. 创建job描述文件
[bigdata@hadoop002 azkaban]$ mkdir jobs
[bigdata@hadoop002 jobs]$ vim first.job

// 内容
type=command
command=echo 'this is my first job'


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 2. 将job资源文件打包成zip文件
[bigdata@hadoop002 jobs]$ zip first.zip first.job

  
 
  • 1

6

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

  • 3. 把压缩包拖动到真实主机上

  • 4. 通过azkaban的web管理平台创建project并上传job的zip包

① 创建project
7
②上传zip包
8

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

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

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

第一个job:start.job

[bigdata@hadoop002 jobs]$ vim start.job
#start.job
type=command
command=touch /opt/module/buwenbuhuo.txt

  
 
  • 1
  • 2
  • 3
  • 4

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

[bigdata@hadoop002 jobs]$ vim step1.job
#step1.job
type=command
dependencies=start
command=echo "this is step1 job"

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

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

[bigdata@hadoop002 jobs]$ vim step2.job
#step2.job
type=command
dependencies=start
command=echo "this is step2 job"

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

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

[bigdata@hadoop002 jobs]$ vim finish.job
#finish.job
type=command
dependencies=step1,step2
command=echo "this is finish job"

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 2. 将所有job资源文件打到一个zip包中
[bigdata@hadoop002 jobs]$ zip jobs.zip start.job step1.job step2.job finish.job

  
 
  • 1

15

  • 3. 在azkaban的web管理界面创建工程并上传zip包
    16
    17
  • 4. 启动工作流flow
    18
  • 5. Job执行成功
    19

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

使用Azkaban调度java程序

  • 1. 创建工程
    20
  • 2. 项目代码
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(); } } }


}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 3. 打包成jar包并放到本地
    21
  • 4. 在本地编写job文件并整理成压缩包
type=javaprocess
java.class=com.buwenbuhuo.azkaban.JavaJob
classpath=./azkaban-0519-1.0-SNAPSHOT.jar

  
 
  • 1
  • 2
  • 3

22

  • 5. 通过azkaban的web管理平台创建project并上传job压缩包,启动执行该job
    23
    24
    25
  • 6. 在Linux下查看文件
[bigdata@hadoop002 jobs]$ cd ..
[bigdata@hadoop002 azkaban]$ cd ..
[bigdata@hadoop002 module]$ ll

  
 
  • 1
  • 2
  • 3

26
27

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

  • 1. 创建job描述文件并打包
#hdfs job
type=command
command=/opt/module/hadoop-2.7.2/bin/hadoop fs -mkdir /azkaban

  
 
  • 1
  • 2
  • 3
  • 2. 通过azkaban的web管理平台创建project并上传job压缩包
// 先启动hdfs和yarn
[bigdata@hadoop002 module]$ start-dfs.sh 
[bigdata@hadoop003 module]$ start-yarn.sh 

  
 
  • 1
  • 2
  • 3

28

  • 3. 运行job并在hdfs上查看
    29
    30

六. 实战案例五:mapreduce任务

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

  • 1.创建job描述文件,并生成zip包
#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

  
 
  • 1
  • 2
  • 3
  • 2. 在azkaban的web管理界面创建工程并上传zip包
    31
  • 3. 启动job
    32
    33
  • 4. 查看结果
    34
    35
      本次的分享就到这里了,

11

  好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
  如果我的博客对你有帮助、如果你喜欢我的博客内容,请“点赞” “评论”“收藏”一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
  码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦!

13
12

文章来源: buwenbuhuo.blog.csdn.net,作者:不温卜火,版权归原作者所有,如需转载,请联系作者。

原文链接:buwenbuhuo.blog.csdn.net/article/details/106207283

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。