Azkaban简要总结

1、定义

关键词:可定时,监控并执行任务调度,设置依赖关系决定顺序
Azkaban 是由 Linkedin 公司推出的一个批量工作流任务调度器,主要用于在一个工作流
内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的 key:value 对的方式,通
过配置中的 Dependencies 来设置依赖关系。Azkaban 使用 job 配置文件建立任务之间的依赖
关系,并提供一个易于使用的 web 用户界面维护和跟踪你的工作流。

2、任务组成

任务可以由Shell 脚本程序,Java 程序,MapReduce 程序、Hive 脚本等,各个任务存在时间先后和依赖关系

3、特点

  1. 兼容任何版本的 hadoop
  2. 易于使用的 Web 用户界面
  3. 简单的工作流的上传
  4. 方便设置任务之间的关系
  5. 调度工作流
  6. 模块化和可插拔的插件机制
  7. 认证/授权(权限的工作)
  8. 能够杀死并重新启动工作流
  9. 有关失败和成功的电子邮件提醒

4、类似组件

ooize、azkaban,后续会写下ooize

5、主要组成

  1. AzkabanWebServer:AzkabanWebServer是整个Azkaban工作流系统的主要管理者,
    它用户登录认证、负责 project 管理、定时执行工作流、跟踪工作流执行进度等一
    系列任务。
  2. AzkabanExecutorServer:负责具体的工作流的提交、执行,它们通过 mysql 数据库
    来协调任务的执行。
  3. 关系型数据库(MySQL):存储大部分执行流状态,AzkabanWebServer 和
    AzkabanExecutorServer 都需要访问数据库。

6、 启动

bin/azkaban-executor-start.sh
bin/azkaban-web-start.sh

7、安装过程

下载地址

http://azkaban.github.io/downloads.html

下载并解压

准备好一下目录,解压后将a b c 放入同一文件
a) azkaban-web-server-2.5.0.tar.gz
b) azkaban-executor-server-2.5.0.tar.gz
c) azkaban-sql-script-2.5.0.tar.gz (执行的脚本文件,可另外添加)
d) mysql-libs.zip(事先安装即可)

生成秘钥对

这里采用Keytool,公司采用的一般会去专业机构申请
Keytool 是 java 数据证书的管理工具,使用户能够管理自己的公/私钥对及相关证书。
-keystore 指定密钥库的名称及位置(产生的各类信息将存在.keystore 文件中)
-genkey(或者-genkeypair) 生成密钥对
-alias 为生成的密钥对指定别名,如果没有默认是 mykey
-keyalg 指定密钥的算法 RSA/DSA 默认是 DSA

 keytool -keystore keystore -alias jetty genkey -keyalg RSA 

配置好服务器节点上的时区并同步

如果在/usr/share/zoneinfo/这个目录下不存在时区配置文件 Asia/Shanghai,就要用 tzselect 生成 再拷贝到/etc/localtime处,注意要将集群时间同步

配置web服务器azkaban.properties

注意路径最好使用绝对路径

#默认 web server 存放 web 文件的目录 
web.resource.dir=/opt/module/azkaban/server/web/ 

#默认时区,已改为亚洲/上海 默认为美国 
default.timezone.id=Asia/Shanghai 

#用户权限管理默认类(绝对路径) 
user.manager.xml.file=/opt/module/azkaban/server/conf/azkaban-users.xml 

#global 配置文件所在位置(绝对路径) 
executor.global.properties=/opt/module/azkaban/executor/conf/global.pro perties azkaban

#数据库连接
mysql.host、mysql.database、mysql.user、mysql.passwor

#jetty(service 容器)
#用于客户端检验服务器安全证书
#SSL 文件名 	   jetty.keystore
#SSL文件密码    jetty.password
#Jetty 主密码   jetty.keypassword
#用于服务器检验客户端安全证书
#SSL 文件名     jetty.truststore
#SSL 文件密码   jetty.trustpassword

服务器用户配置

 <user username="admin" password="admin" roles="admin,metrics"/> 

配置执行服务器

注意路径最好使用绝对路径

#时区
default.timezone.id=Asia/Shanghai 

#Loader for projects 
executor.global.properties=/opt/module/azkaban/executor/conf/global.pro perties 

#mysql
mysql.host、mysql.database、 mysql.user、 mysql.password

可配置通知邮件通知任务成功失败

server 的 conf 下的 azkaban.properties 文件

 mail.sender=接受邮箱
 mail.host=邮箱服务器(smtp.163.com)
 mail.user=发送的邮箱
 mailpassward=邮箱的密码
 job.failure.email
 job.success.email 


### 8、设置job的调用

1、创建多个以.job结尾的文件
2、格式

#文件名.job
type=command 或者 java
dependencies=以来的job(等那个任务执行完再执行)

3、打包所有的job打包到一个zip文件中
zip jobs.zip [所有的job]

4、在azkabanweb界面上传即可

发布了11 篇原创文章 · 获赞 14 · 访问量 249

猜你喜欢

转载自blog.csdn.net/weixin_44303896/article/details/104034804