洞察掌握android电视app开发中的安全与合规策略,提升企业运营效率
2074
2022-09-09
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~