当前位置: 首页 > 工具软件 > Azkaban > 使用案例 >

Azkaban(三)—— Azkaban任务

费学
2023-12-01


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

1. 案例一:单一job

# 在azkaban-web-2.5.0下创建jobs目录
cd /usr/local/azkaban-web-2.5.0/
mkdir jobs

# 创建job文件 single-job.job 
vim single-job.job
type=command
command=echo 'This is my first single job.'
	
# 压缩成zip文件
zip single-job.zip single-job.job 

通过Azkaban的web管理平台创建project并上传job的zip包,然后执行。

2. 案例二:创建有依赖关系的多个job

vi put.job
type=command
command=/usr/local/hadoop-3.2.0/bin/hadoop fs -put /opt/top_resources/word.txt /

vi count.job
type=command
command=/usr/local/hadoop-3.2.0/bin/hadoop jar /usr/local/hadoop-3.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /word.txt /word-count-out
dependencies=put

# 将所有job资源文件打到一个zip包中
zip multi-job.zip put.job count.job

3. 案例三:使用Azkaban调度java程序

  1. 编写java程序

    public class AzkabanTest {
      public static void main(String[] args) throws IOException {
          AzkabanTest azkabanTest = new AzkabanTest();
          azkabanTest.run();
      }
    
      public void run() throws IOException {
          FileOutputStream fos = new FileOutputStream("/opt/top_resources/word.txt");
          fos.write("This is a java program.".getBytes());
          fos.close();
      }
    }
    
  2. 将java程序打成jar包,在azakaban目录下创建lib目录,将jar放入lib内。

  3. 编写job文件并打包成zip包。

    # 编写job文件
    vim azkabanJava.job 
    type=javaprocess
    java.class=com.during.azkaban.AzkabanTest
    classpath=/usr/local/azkaban/libs/azkaban-java.jar
    
    # 将job文件打成zip包
    zip azkabanJava.zip azkabanJava.job 
    
  4. 通过azkaban的web管理平台创建project并上传job压缩包,启动执行该job。

  5. 测试。

    cat /opt/top_resources/word.txt
    

4. 案例四:HDFS操作任务

# 编写job文件
vi hdfs.job
type=command
command=/opt/module/hadoop-2.8.4/bin/hadoop fs -mkdir /azkaban

# 打包
zip fs.zip fs.job  

通过Azkaban的web管理平台创建project并上传job压缩包,启动执行该job,查看结果。

5. 案例五:MapReduce任务(见案例二)

6. 案例六:Hive脚本任务

# 编写hive的sql脚本
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/test/datas/student.txt' into table student;
insert overwrite local directory '/opt/test/datas/student'
row format delimited fields terminated by '\t'
select * from student;

# 编写job文件
vim hive.job 
type=command
command=/usr/local/hive/bin/hive -f /opt/test/azkaban/jobs/student.sql

# 将所有job资源文件打到一个zip包中。
zip hive.zip hive.job

# 在Azkaban的web管理界面创建工程并上传zip包,启动job,查看结果。
cat /opt/test/datas/student/000000_0 

可以设置定时

 类似资料: