Azkaban创建运行Job

网友投稿 1986 2022-09-09

Azkaban创建运行Job

Azkaban创建运行Job

一个工作流就是一个Project 工作流就是很多的工作串起来就是工作流.

单一Job案例

在本地新建一个job文件 first.job

type=commandcommand=mkdir /root/jobs/demo

保存之后压缩成job.zip包

发现脚本已经执行成功了, 创建了一个demo文件夹.

[root@zjj101 jobs]# pwd/root/jobs[root@zjj101 jobs]# lsdemo

多个Job工作流案例

就是第一个job执行完了第二个job再执行

aaa.job内容:

type=commandcommand=mkdir /root/jobs/aaa

bbb.job内容:

type=commanddependencies=aaacommand=mkdir /root/jobs/aaa/bbb

重点是dependencies属性,意思是这个job依赖名字为aaa的job

[root@zjj101 jobs]# lsaaa[root@zjj101 jobs]# cd aaa[root@zjj101 aaa]# lsbbb[root@zjj101 aaa]# pwd/root/jobs/aaa[root@zjj101 aaa]#

两个Job依赖一个Job

dependencies属性可以写两个. finish.job内容

type=commanddependencies=step1,step2command=echo "this is finish job"

调度Java的jar程序

随便创建个Maven项目

写个类

package com.zjj.demo;import java.io.FileOutputStream;import java.io.IOException;public class test01 { public static void main(String[] args) throws IOException { // 根据需求编写具体代码 FileOutputStream fos = new FileOutputStream("/root/jobs/output.txt"); fos.write("hello world".getBytes()); fos.close(); }}

然后Maven package命令打成一个jar包,然后上传到/root/jobs/lib/目录下面

[root@zjj101 lib]# pwd/root/jobs/lib[root@zjj101 lib]# lsdemo-1.0-SNAPSHOT.jar[root@zjj101 lib]#

开始编写配置文件demo.job

demo.job内容:

type=javaprocessjava.class=com.zjj.demo.test01classpath=/root/jobs/lib/*

说明: classpath 地址是Linux存放demo-1.0-SNAPSHOT.jar的位置 java.class 是你刚刚编写的Java代码的权限定类名,

写完之后给demo.job压缩成demo.zip文件.然后创建Azkaban任务,创建和启动job流程和单一job案例一模一样的.

然后耐心等待程序执行

查看结果

[root@zjj101 jobs]# lslib output.txt[root@zjj101 jobs]# cat output.txthello world[root@zjj101 jobs]#

发现自动生成了一个 output.txt文件,然后里面还有内容.说明程序执行成功了.

HDFS操作任务

操作HDFS其实就是执行Linux命令.创建job和启动job和前面单一job案例是一模一样的.

job文件

type=commandcommand=/opt/module/hadoop-2.7.2/bin/hadoop fs -mkdir /azkaban

启动MapReduce任务

一般都是自己写成Jar,然后放到一个目录下, 然后用Azkaban去调度.

type=commandcommand=/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 /wordcount/input /wordcount/output

Hive脚本任务

创建student.txt ,注意内容是tab分隔的.

1 aaa2 bbb3 ccc

在hdfs上创建student目录. 将student.txt上传到student目录

use default;create table student( id int, name string) row format delimited fields terminated by '\t';load data inpath '/student' into table student;

在创建Azkaban任务之前可以

编写hive.job任务文件之前可以先执行命令看看脚本是否写错了.

/root/soft/hive-1.2.1/bin/hive -f "/root/jobs/student.sql"

开始编写hive.job文件:

type=commandcommand=/root/soft/hive-1.2.1/bin/hive -f "/root/jobs/student.sql"

然后打成zip包之后就开始创建任务并执行任务了,过程和之前单一Job案例一模一样的. 等执行完了之后就会发现default数据库里面有个student表,然后打开这个表之后你就可以发现表里面有数据了.

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小程序SDK的使用会有哪些优势
下一篇:移动混合模式应用开发如何达到专业效果?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~