赞
踩
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使用java开发,封装了jetty作为轻量的web服务器,使用web ui来操控,web ui能够直观地看到不同的任务之间的依赖关系,azkaban可以单点部署,也可以双机部署,对于一般的情况,单点部署就足够了。
他的架构示意图官方是这么给出的:
官方是这么介绍的:
Azkaban consists of 3 key components:
Relational Database (MySQL)
AzkabanWebServer
AzkabanExecutorServer
在我们很多工程情况下,webserver 就是 executor server,这样就是单点部署,同时,需要我们安装mysql作为持久化的数据库。
我们用azkaban主要解决的业务场景是:
这样,我们就可以利用azkaban来进行任务调度,主要应用场景就是离线计算了。
在上面,我们已经知道了,大数据离线计算相关内容是存在一种依赖关系的,最简单的例子是先要ETL,然后才能进行分析。
Azkaban可以在我们睡觉的时候,帮我们完成日志的ETL和自动分析任务的创建和监控,无人值守,方便轻松。
首先得安装Mysql,然后配置mysql,下面按照官方的步骤,进行修改如下:
首先登录到mysql shell,然后输入密码:
mysql -uroot -p
创建数据库,名为azkaban
mysql> CREATE DATABASE azkaban;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。