Azkaban系统是一个数据处理的很好用的工具,可以用来运行hadoop任务,管理hdfs,可以进行schedule任务调度,总体来说功能还是很强大的。
研究了一下azkaban,做了以下总结性的东西,希望对用azkaban的人有所帮助。
1、Azkaban的安装
azkaban需要用到mysql进行数据的存储和交换。
azkaban分文两部分,分别是web server和executive server ,webserver 是前台页面的显示,默认的服务器是jetty,安装webserver需要对conf文件下的azkaban.properties文件进行配置,需要指定azkaban的web页面存储的文件夹,conf文件夹等文件夹的路径,可以使用相对路径,需要对mysql一些的连接函数进行配置,并将mysql-java-connetor.jar放置在exlib文件夹下。值得注意的是,启动azkaban时,需要在azkaban-web-server-start.sh将tempDir指定,temp文件夹是azkaban在运行时会自动创建的,所以需要将tempDir设置相对路径为:“./temp”(也就是在bin目录下)。executive server运行工作流,在运行之前,需要将一些需要的plugin解压到plugin文件夹下,并将hadoop home路径配置好。同上需要配置temp文件路径。关于配置hadoop路径在其文档中说的很明白,但是现在的azkaban只支持hadoop-0.2的版本,对与hadoop-2.0版本的支持不够好。
azkaban两个部分应分别启动,启动时,要给定azkaban安装的根目录和其他文件的路径,可以用相对路径,例如启动webserver时,输入“./azkaban-web-server-start.sh .. ..”。azkaban的两个部分都必须指定其web文件夹的路径,我没有试过在executor不输入web文件夹的路径会是什么样。因为我把webserver和executor都放在了一个服务器上,但是显然,azkaban并不需要把他们都放到一个服务器上。
2、Azkaban的运行
azakban目前只支持上传.zip的文件,把所有需要用到的jar包和配置都放到.zip文件中,上传文件的时候必须要用到IE浏览器。非常恶心的IE only。原因是在azkaban的上传过程中需要检测其文件后缀,但是除了IE会在上传的时候时候就把文件的路径无需配置的就区分开来,其他的非IE内核的貌似都不行。
3、azkaban的改造
因为azkaban只有一个executor的sever,虽然这个server可以放到一个hadoop集群上面,间接的管理很多机器。但是我希望azkaban这个系统不仅仅能够支持haodop的管理,而且对数据挖掘的整体调度都能够管理,由于azkaban的工作流控制和schedule做的都不错,只需对其进行一定的改造即可。
关于改造的具体细节,在另一片日志里面结合代码进行详细分析。