一,概述
Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
它有如下功能特点:
Web用户界面。
方便上传工作流。
方便设置任务之间的关系。
调度工作流。
认证/授权(权限的工作)。
能够杀死并重新启动工作流。
模块化和可插拔的插件机制。
项目工作区。
工作流和任务的日志记录和审计。
Webserver主要负责权限验证、项目管理、作业流下发等工作;
Executor主要负责作业流/作业的具体执行以及搜集执行日志等工作;
MySQL用于存储作业/作业流的执行状态信息。
二,环境安装
1,准备工作:Hadoop2.6,hive2.1.1,mysql服务器,azkaban2.5.0。
2,解压安装,改名。
3,azkaban脚本导入
解压: azkaban-sql-script-2.5.0.tar.gz
命令:tar –zxvf azkaban-sql-script-2.5.0.tar.gz
将解压后的mysql 脚本,导入到mysql中:
进入mysql
mysql> create database azkaban;
mysql> use azkaban;
Database changed
mysql> source /home/hadoop/azkaban-2.5.0/create-all-sql-2.5.0.sql;
4,创建SSL配置
命令(在/的目录下): keytool -keystore keystore -alias jetty -genkey -keyalg RSA。
运行此命令后,会提示输入当前生成 keystor的密码及相应信息,输入的密码请劳记。
完成上述工作后,将在当前目录生成 keystore 证书文件,将keystore 考贝到 azkaban web服务器根目录中.如:cp keystore azkaban/webserver
5,先配置好服务器节点上的时区
先生成时区配置文件Asia/Shanghai,用交互式命令 tzselect 即可。
拷贝该时区文件,覆盖系统本地时区配置。
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
6,azkaban web服务器配置
进入azkaban web服务器安装目录 conf目录,命令vi azkaban.properties
#Azkaban Personalization Settings azkaban.name=sdd azkaban.label=SDD Azkaban azkaban.color=#FF3601 azkaban.default.servlet.path=/index web.resource.dir=web/ default.timezone.id=Asia/Shanghai #Azkaban UserManager class user.manager.class=azkaban.user.XmlUserManager user.manager.xml.file=conf/azkaban-users.xml #Loader for projects executor.global.properties=conf/global.properties azkaban.project.dir=projects database.type=mysql mysql.port=3306 mysql.host=hadoop01 mysql.database=azkaban mysql.user=root mysql.password=123 mysql.numconnections=100 # Velocity dev mode velocity.dev.mode=false # Azkaban Jetty server properties. jetty.maxThreads=25 jetty.ssl.port=8443 jetty.port=8081 jetty.keystore=keystore jetty.password=222222 jetty.keypassword=222222 jetty.truststore=keystore jetty.trustpassword=222222 # Azkaban Executor settings executor.port=12321 # mail settings mail.sender= mail.host= job.failure.email= job.success.email= lockdown.create.projects=false cache.directory=cache
7,azkaban 执行服务器配置
进入执行服务器安装目录conf,命令vi azkaban.properties
#Azkaban default.timezone.id=Asia/Shanghai # Azkaban JobTypes Plugins azkaban.jobtype.plugin.dir=plugins/jobtypes #Loader for projects executor.global.properties=conf/global.properties azkaban.project.dir=projects database.type=mysql mysql.port=3306 mysql.host=hadoop01 mysql.database=azkaban mysql.user=root mysql.password=123 mysql.numconnections=100 # Azkaban Executor settings executor.maxThreads=50 executor.port=12321 executor.flow.threads=30
8, 用户配置
进入azkaban web服务器conf目录,修改vi azkaban-users.xml 增加 管理员用户
<azkaban-users> <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" /> <user username="metrics" password="metrics" roles="metrics"/> <user username="admin" password="admin" roles="admin,metrics" /> <role name="admin" permissions="ADMIN" /> <role name="metrics" permissions="METRICS"/> </azkaban-users>
9,启动
a)web服务
在azkaban web服务器目录下执行启动命令
bin/azkaban-web-start.sh
注:在web服务器根目录运行
b)执行服务器
在执行服务器目录下执行启动命令
bin/azkaban-executor-start.sh ./
注:只能要执行服务器根目录运行
c)启动完成后,在浏览器(建议使用谷歌浏览器)中输入https://服务器IP地址:8443 ,即可访问azkaban服务了.在登录中输入刚才新的户用名及密码,点击 login。