美文网首页
三 Azkaban实战

三 Azkaban实战

作者: 码农GG | 来源:发表于2019-12-17 12:20 被阅读0次

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

    3.1单一job案例

    1)创建job描述文件

    [itstar@bigdata111 jobs]$ vim first.job
    
    #first.job
    
    type=command
    
    command=echo 'this is my first job'
    
    1. 将job资源文件打包成zip文件
    [itstar@bigdata111 jobs]$ **zip first.zip first.job** 
    
      adding: first.job (deflated 15%)
    
    [itstar@bigdata111 jobs]$ ll
    
    总用量 8
    
    -rw-rw-r--. 1 itstar itstar  60 10月 18 17:42 first.job
    
    -rw-rw-r--. 1 itstar itstar 219 10月 18 17:43 **first.zip**
    

    注意:

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

    3)通过azkaban的web管理平台创建project并上传job的zip包

    首先创建project


    image.png

    上传zip包


    image.png

    4)启动执行该job


    image.png

    点击执行工作流


    image.png

    点击继续


    image.png

    5)Job执行成功


    image.png

    6)点击查看job日志


    image.png

    3.2多job工作流案例

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

    第一个job:1.job

    [itstar@bigdata111 jobs]$ vi 1.job
    
    type=command
    
    command=/opt/module/hadoop-2.8.4/bin/hadoop fs -put /opt/module/datas/word.txt /
    

    第二个job:2.job依赖1.job

    [itstar@bigdata111 jobs]$ vi 2.job
    
    type=command
    
    command=/opt/module/hadoop-2.8.4/bin/hadoop jar /opt/module/hadoop-2.8.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /word.txt /out
    
    dependencies=1
    

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

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

    4)查看结果

    思考:

    将student.txt文件上传到hdfs,根据所传文件创建外部表,再将表中查询到的结果写入到本地文件

    3.3 java操作任务

    使用Azkaban调度java程序

    1)编写java程序

    import java.io.FileOutputStream;
    
    import java.io.IOException;
    
    public class AzkabanTest {
    
    public void run() throws IOException {
    
    // 根据需求编写具体代码
    
    FileOutputStream fos = new FileOutputStream("/opt/module/azkaban/output.txt");
    
    fos.write("this is a java progress".getBytes());
    
    fos.close();
    
    }
    
    public static void main(String[] args) throws IOException {
    
    AzkabanTest azkabanTest = new AzkabanTest();
    
    azkabanTest.run();
    
    }
    
    }
    

    2)将java程序打成jar包,创建lib目录,将jar放入lib内

    [itstar@bigdata111 azkaban]$ mkdir lib
    
    [itstar@bigdata111 azkaban]$ cd lib/
    
    [itstar@bigdata111 lib]$ ll
    
    总用量 4
    
    -rw-rw-r--. 1 itstar itstar 3355 10月 18 20:55 azkaban-0.0.1-SNAPSHOT.jar
    

    3)编写job文件

    [itstar@bigdata111 jobs]$ vi azkabanJava.job
    
    #azkabanJava.job
    
    type=javaprocess
    
    java.class=AzkabanTest(全类名)
    
    classpath=/opt/module/azkaban/lib/*
    

    4)将job文件打成zip包

    [itstar@bigdata111 jobs]$ zip azkabanJava.zip azkabanJava.job
    
      adding: azkabanJava.job (deflated 19%)
    

    5)通过azkaban的web管理平台创建project并上传job压缩包,启动执行该job

    [itstar@bigdata111 azkaban]$ cat /opt/module/azkaban/output.txt 
    

    3.3 HDFS操作任务

    1)创建job描述文件

    [itstar@bigdata111 jobs]$ vi hdfs.job
    
    #hdfs job
    
    type=command
    
    command=/opt/module/hadoop-2.8.4/bin/hadoop fs -mkdir /azkaban
    

    2)将job资源文件打包成zip文件

    [itstar@bigdata111 jobs]$ zip fs.zip fs.job

    adding: fs.job (deflated 12%)

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

    4)启动执行该job

    5)查看结果

    3.4 mapreduce任务

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

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

    [itstar@bigdata111 jobs]$ vim mapreduce.job
    
    #mapreduce job
    
    type=command
    
    command=/opt/module/hadoop-2.8.4/bin/hadoop jar /opt/module/hadoop-2.8.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /wordcount/input /wordcount/output
    

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

    [itstar@bigdata111 jobs]$ zip mapreduce.zip mapreduce.job

    adding: mapreduce.job (deflated 43%)

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

    4)启动job

    5)查看结果

    3.5 Hive脚本任务

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

    (1)Hive脚本:student.sql

    [itstar@bigdata111 jobs]$ vim student.sql
    
    use default;
    
    drop table student;
    
    create table student(id int, name string)
    
    row format delimited fields terminated by '\t';
    
    load data local inpath '/opt/module/datas/student.txt' into table student;
    
    insert overwrite local directory '/opt/module/datas/student'
    
    row format delimited fields terminated by '\t'
    
    select * from student;
    

    (2)Job描述文件:hive.job

    [itstar@bigdata111 jobs]$ vim hive.job
    
    #hive job
    
    type=command
    
    command=/opt/module/hive/bin/hive -f /opt/module/azkaban/jobs/student.sql
    

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

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

    4)启动job

    5)查看结果

    [itstar@bigdata111 student]$ cat /opt/module/datas/student/000000_0

    相关文章

      网友评论

          本文标题:三 Azkaban实战

          本文链接:https://www.haomeiwen.com/subject/hzojnctx.html