利用Azkaban来完成大数据的任务调度

Azkaban是一款由LinkedIn开发的任务调度系统,适用于Hadoop作业的依赖管理。它提供了一个直观的Web UI,显示任务间的依赖关系,并支持任务分片和自动执行。本文介绍了Azkaban的基本概念、架构、主要用途、安装步骤,包括MySQL配置、Azkaban的编译和运行,以及如何提交任务。
摘要由CSDN通过智能技术生成

Azkaban简介

Azkaban是一款有LinkedIn开源的任务调度系统,使用该系统可以完成任务的定时调度,执行,任务分片等操作。
官方是这么介绍的:

zkaban was implemented at LinkedIn to solve the problem of Hadoop job dependencies.We had jobs that needed to run in order, from ETL jobs to data analytics products.
Initially a single server solution, with the increased number of Hadoop users over the years, Azkaban has evolved to be a more robust solution.

azkaban在linkedIn内部经常被用来作ETL和大数据分析相关的任务调度。
相对于我们比较熟悉的crontab命令,azkaban可以认为是一种更高级的,能够支持任务的分片与自动执行,同时封装有基于jetty的web ui的这么一款专业的任务调度系统。于此同时,国内也有比较著名的当当网开源的一款任务调度系统,elasticjob.
不过,相对于azkaban,笔者更喜欢使用azkaban,因为其web ui界面更加直观,能够看到不同的job之间的依赖关系,同这这个任务调度系统也更轻量化。

Azkaban的架构

azkaban使用java开发,封装了jetty作为轻量的web服务器,使用web ui来操控,web ui能够直观地看到不同的任务之间的依赖关系,azkaban可以单点部署,也可以双机部署,对于一般的情况,单点部署就足够了。
他的架构示意图官方是这么给出的:
azkaban架构图
官方是这么介绍的:

Azkaban consists of 3 key components:
Relational Database (MySQL)
AzkabanWebServer
AzkabanExecutorServer

在我们很多工程情况下,webserver 就是 executor server,这样就是单点部署,同时,需要我们安装mysql作为持久化的数据库。

Azkaban做什么?

我们用azkaban主要解决的业务场景是:

  1. 对日志等原始数据进行ETL
  2. 将ETL后的数据存储起来,可以是mongodb,也可以是hbase等
  3. 对数据进行分析
  4. 任务完成或失败通知管理员

这样,我们就可以利用azkaban来进行任务调度,主要应用场景就是离线计算了。
在上面,我们已经知道了,大数据离线计算相关内容是存在一种依赖关系的,最简单的例子是先要ETL,然后才能进行分析。
Azkaban可以在我们睡觉的时候,帮我们完成日志的ETL和自动分析任务的创建和监控,无人值守,方便轻松。

Azkaban安装

mysql

首先得安装Mysql,然后配置mysql,下面按照官方的步骤,进行修改如下:
首先登录到mysql shell,然后输入密码:

mysql -uroot -p
Create a database for Azkaban. For example:

创建数据库,名为azkaban

mysql> CREATE DATABASE azkaban;
Create
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值