使用Azkaban调度java程序
1、创建maven项目
便于打包,不用添加额外的依赖包
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.alex.azkaban</groupId>
<artifactId>azkaban_java</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
2、编写java程序
package com.alex.azkaban.job;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* @author 黑猴子的家
*/
public class Azkaban_Java {
// todo azkaban 触发定时任务,把 this is a java progress 数据,写入到output.txt文件
public void run() throws IOException {
// 根据需求编写具体代码
FileOutputStream fos = new FileOutputStream("/opt/module/azkaban/output.txt");
//FileOutputStream fos = new FileOutputStream("E:\\output.txt");
fos.write("this is a java progress\r\n".getBytes());
fos.close();
}
public static void main(String[] args) throws IOException {
Azkaban_Java azkabanTest = new Azkaban_Java();
azkabanTest.run();
}
}
3、上传jar包
将java程序打成jar包,创建lib目录,将jar放入lib内
[alex@hadoop102 ~]$ cd /opt/module/azkaban
[alex@hadoop102 azkaban]$ mkdir lib
[alex@hadoop102 azkaban]$ cd lib/
[alex@hadoop102 lib]$ ll
总用量 4
-rw-rw-r--. 1 alex alex 3355 10月 18 20:55 azkaban_java.jar
[alex@hadoop102 lib]$ sudo chown -R alex:alex azkaban_java.jar
4、编写job文件
[alex@hadoop102 ~]$ cd /opt/module/azkaban/jobs
[alex@hadoop102 jobs]$ vim azkabanJava.job
#Java job
type=javaprocess
java.class=com.alex.azkaban.job.Azkaban_Java
classpath=/opt/module/azkaban/lib/*
尖叫提示:jar包需要分发一下
5、将job文件打成zip包
[alex@hadoop102 jobs]$ zip java.zip java.job
adding: java.job (deflated 16%)
6、Azkaban 执行
步骤和单Job案例 一样
7、查看结果
[alex@hadoop102 azkaban]$ cat output.txt
this is a java progress