Azkaban 任务调度工具

Azkaban是LinkedIn推出的一个批量工作流任务调度器,用于按特定顺序运行一组任务和流程。它提供了直观的Web UI,支持通过简单的key:value对配置任务依赖。本文介绍了Azkaban的概述、架构,以及单机和集群模式的安装步骤,适合对任务调度系统感兴趣的读者。
摘要由CSDN通过智能技术生成

概述

Azkaban是由Linkedin公司推出的⼀个批量⼯作流任务调度器,主要⽤于在⼀个⼯作流内以⼀个特定的顺序运⾏⼀组⼯作和流程,它的配置是通过简单的key:value对的⽅式,通过配置中的dependencies 来设置依赖关系,这个依赖关系必须是⽆环的,否则会被视为⽆效的⼯作流。Azkaban使⽤job配置⽂件建⽴任务之间的依赖关系,并提供⼀个易于使⽤的web⽤户界⾯维护和跟踪你的⼯作流。zkaban的设计⾸先考虑了可⽤性。它已经在LinkedIn上运⾏了⼏年,并驱动了许多Hadoop和数据仓库流程。

知名度⽐较⾼的应该是 Apache Oozie,但是其配置⼯作流的过程是编写⼤量的XML配置,⽽且代码复杂度⽐较⾼,不易于⼆次开发。另外⼀个应⽤也⽐较⼴泛的调度系统是 Airflow,但是其开发语⾔是
Python。

选择Azkaban的理由:

  • 提供功能清晰,简单易⽤的Web UI界⾯
  • 提供job配置⽂件快速建⽴任务和任务之间的依赖关系
  • 提供模块化和可插拔的插件机制,原⽣⽀持command、Java、Hive、Pig、Hadoop
  • 基于Java开发,代码结构清晰,易于⼆次开发

架构

在这里插入图片描述

AzkabanLinkedIn上实施,以解决Hadoop作业依赖问题。我们有⼯作需要按顺序运⾏,从ETL⼯作到数据分析产品。最初是单⼀服务器解决⽅案,随着多年来Hadoop⽤户数量的增加,Azkaban 已经发展成为⼀个更强⼤的解决⽅案。Azkaban总共有三个⻆⾊:关系型数据库(MySQL)AzkabanWebServerAzkabanExecutorServer

Azkaban使⽤MySQL存储服务状AzkabanWebServerAzkabanExecutorServer都需要访问MySQL的DB数据库

  • AzkabanWebServer 是所有Azkaban的主要管理器。它处理项⽬管理身份验证调度程序执⾏监视。它还⽤作Web⽤户界⾯,使得 使⽤Azkaban很容易。
  • Azkaban使⽤* .job键值属性⽂件来定义⼯作流程中的各个任务,并使⽤dependencies 属性来定义作业的依赖关系链。这些作业⽂件和相关的代码可以存档为*.zip,并通过Azkaban UI或curl通过Web服务器上传。以前的Azkaban版本(version 3.0之前)在单个服务器中同时具有AzkabanWebServer和AzkabanExecutorServer功能。此后,执⾏程序已被分离到单独的服务器中。拆分这些服务的原因有很多:⽅便的扩展Executor的数量,并在失败的情况下可以恢复。离以后在对Azkaban升级的时候对⽤户的使⽤影响很⼩。

安装使用

version 3.0 中我们提供了三种模式:独⽴的"solo-server"模式、较重的"two server"模式以及"multipleexecutor"模式。

  • 其中solo server mode使⽤的内嵌的H2 DB,所有的web server和executor server运⾏在⼀个相同的进程中,该种模式适合测试或者任务调度规模⽐较⼩;
  • two server mode⽤于⽣产环境,后台的DB数据库使⽤MySQL,其中Webserver和executorserver应该被部署在不同的主机上;
  • multiple executor mode 也通常⽤于⽣产环境,后台的DB数据库使⽤MySQL,其中Webserver和executorservers应该被部署在不同的主机上;

单机 mode

编译软件 (推荐不要自己执行,亦可省略,直接开始②)
[root@pro1~] yum install git
[root@pro1~] git clone https://github.com/azkaban/azkaban.git
[root@pro1~] cd azkaban/
[root@pro1azkaban] ./gradlew build installDist

由于编译时间过长(可能几个小时),这里附上已编译好的安装包
https://pan.baidu.com/s/1AI7QBfyMDDAxJ3V5x_TkDQ 提取码:gvcc

安装单机

获取编译完成后安装目录下的 azkaban-solo-server-*.tar.gz,进行解压。

执行如下命令:

[root@pro1 azkaban] tar -zxf azkaban-solo-server/build/distributions/azkaban-soloserver-3.81.0-1-g304593d.tar.gz -C /usr/
[root@pro1 azkaban] cd /usr/
[root@pro1 usr] mv azkaban-solo-server-3.81.0-1-g304593d azkaban-solo-server
修改 azkaban.properties 配置⽂件

进入conf目录,执行如下命令

default.timezone.id=Asia/Shanghai #修改时区
jetty.port=8082 #配置azkabanweb服务器地址,避免
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值