azkaban安装编译3.86 教程

Azkaban is a batch workflow job scheduler created at LinkedIn to run Hadoop jobs. Azkaban resolves the ordering through job dependencies and provides an easy to use web user interface to maintain and track your workflows.

特点

  1. 兼容任何版本的hadoop。(Oozie依赖于hadoop)
  2. 有易于使用的web界面
  3. 简单的工作流上传
  4. 方便设置任务之间的关系
  5. 调度工作流
  6. 模块化和可插拔的插件机制
  7. 认证/授权(权限的工作)。任务提交上去之后,并不是所有人都能查看或修改。
  8. 能够杀死并重启工作流
  9. 有关失败和成功的电子邮件提醒

三大组件

  1. azkaban webServer。是整个azkaban工作流系统的主要管理者,包括用户登录认证、负责project管理、定时执行工作流、跟踪工作流执行进度等一系列任务。
  2. azkaban executor server。负责具体的工作流的提交和执行,通过mysql来协调任务的执行。
  3. mysql:存储大部分执行流状态,azkaban WebServer和executorServer都需要访问mysql

安装配置

  1. 下载azkaban:https://github.com/azkaban/azkaban/releases/tag/3.86.0下载azkaban-3.86.0.tar.gz
  2. 将文件解压
    执行命令:./gradlew build installDist -x test。如果无法下载:可以访问 http://services.gradle.org/distributions/下载对应的包,把zip压缩包拷贝进入~/.gradle/wrapper/dists/gradle-4.6-all/bcst21l2brirad8k2ben1letg ,然后执行gradlew clean即可。
  3. 这一个过程中会下载很多依赖包。文末有gradle依赖,以及编译好的azkaban 3.86版本。直接解压就可以使用

Start the solo server

修改azkaban-3.86.0/azkaban-solo-server/build/install/azkaban-solo-server/conf/azkaban.properties文件的时区:
default.timezone.id=Asia/Shanghai
执行

# 一定要在azkaban更目录运行,它的配置文件默认是相对路径
cd azkaban-solo-server/build/install/azkaban-solo-server
bin/start-solo.sh

默认端口是8081,可以在azkaban.properties中进行修改
在这里插入图片描述
用户名和密码都是azkaban

创建简单job任务

在这里插入图片描述
创建format.job

type=command
# 必须使用绝对路径,指定脚本位置
command=sh /home/iie4bu/shell/azkaban/job/format.sh

同时创建format.sh

#!/bin/bash

echo "format job start...."

head /home/iie4bu/data/sales.csv

format.job进行压缩:zip -r format.zip format.job
然后进行上传:
在这里插入图片描述
执行job
在这里插入图片描述
点击前面的序号3,进入job,查看joblist
在这里插入图片描述
查看log:
在这里插入图片描述
可以看到脚本的输出内容。

如何在job中指定shell的相对路径

新建clean.sh:

#!/bin/bash
date >> /home/iie4bu/date.txt

新建clean.job

type=command
# 相对路径
command=sh clean.sh

将这两个文件压缩到一起:
在这里插入图片描述
将clean.zip文件上传至azkaban运行就可以了。

处理复杂的shell工作流程

在这里插入图片描述
first.job内容:

type=command
command=echo 'first'

second.job内容:

type=command
command=echo 'second'
dependencies=first

third.job内容:

type=command
command=echo 'third'
dependencies=first

fourth.job内容:

type=command
command=echo 'fourth'
dependencies=second,third

将这四个job压缩成一个zip包:
在这里插入图片描述
将jobs.zip上传到azkaban:
在这里插入图片描述
执行这个工作流程:
在这里插入图片描述

处理java Job

新建一个Extract.java:

public class Extract {
    public static void main(String[] args) throws FileNotFoundException {
    // 往文件里写数据
    }
}

将这个文件进行package。生成mockdata-1.0-SNAPSHOT-jar-with-dependencies.jar
新建java.job:

type=javaprocess
Xms=1024M
Xmx=2048M
java.class=ETL.Extract
classpath=./mockdata-1.0-SNAPSHOT-jar-with-dependencies.jar

将这两个文件压缩成java.zip:
在这里插入图片描述
上传至azkaban,然后执行即可。

Java process jobs 是一个方便启动java程序的容器。它等价于从命令行执行一个class的main方法。下面介绍在javaprocess jobs中的可用属性:

PropertyRequired?MeaningExample
java.classrequired包含main方法的classcom.org.baidu
classpath可选一个用逗号隔开的JAR文件的列表并且目录要被添加到classpath下。如果没有设置,它将会把working目录下的所有JAR文件都添加到classpath下面common-io.jar,hello.jar
Xms可选启动JVM时初始化内存池大小。默认64M64M
Xmx可选内存池最大值。默认为256M1024M
main.args可选传入到java main方法中的以逗号分隔的参数列表arg1,arg2
jvm.args可选设置JVM的参数。整个字符串被完整传入作为VM的参数-Dmyprop=test -Dhello=world
working.dir可选从command jobs继承/home/job
env.property可选从command jobs继承env.MY_ENV_VARIABLE=testVariable

gradle和azkaban编译结果

链接:https://pan.baidu.com/s/1MgJTkIjxGnWf779iyPQS2g
提取码:n7fp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值