Hadoop Family JobSchedule----Azkaban
1.1 Azkaban
在大量的MR以及Pig等脚本任务产生的时候,必然会需求一个调度平台,Apache 的OOZIE是一个选择,当然Azkaban也是另外一种选择。
Azkaban可以对任务进行工作流定义,即每个Job可以依赖别的Job或者主动启动OtherJob。同时该平台提供很完善的Mail Notification,Log Collection以及Fail Manage。
Azkaban提供Java、Hadoop、Pig、UnixShell、Hive等Job类型
1.2 Azkaban Enviroment
Linux【Window不支持,存在Bug】
Firefox【必须在Linux下】
Mysql 【Store Azkaban JobSchedule and Project Info】
1.3 Azkaban Project ManagerPlatform
每个Node 对应一个Job,通过Job语法定义的depend,平台会定义出相关的依赖关系,提供并发性能,以及降低系统逻辑依赖。通常,ETL会建立各种各样的Job,使用此平台很好管理
Job Script Code:
Type=command
Dependencies=AJob,Bjob
Command=hadoop jar wordcount.jar WordCount path1 path2
Azkaban提供在客户端批量上传Job文件的功能。
1.4 Azkaban Schedule Manage
你可以对一个Job流或者Job流中的一部分设置它的执行周期,执行周期的时间官方不是北京时间,需要自己修改下。很简单
直接在ScheduleServlet parsetDateTime中添加
Timezone =DataTimeZone.forTimeZone(TimeZone.getTimeZone(“GMT+8:00”));
下下来的版本可能还有一些别的bug需要自己手动修改。
1.5 Azkaban Log Collection
Azkaban会提供一个友好的窗口让你去查找相关任务的Job,而不是在所有Log 里面去search
1.6 Azkaban History Job
能够查询到以前失败的任务以及相关信息,对于失败任务重新跑,若有需求,需要自己开发。
1.7 Azkaban User And Permission
XML USER MANAGER SYSTEM
<azkaban-users>
<user username="1" password="1"roles="admin" groups="azkaban" />
<rolename="admin" permissions="ADMIN" />
</azkaban-users>
提供简单权限以及角色服务