任务调度管理工具:Linux下azkaban的安装与使用

任务调度管理工具

功能

主要是调度方面的功能,有些工具也支持资源的管理,比如zeus和Yarn类似

时间调度:

基于时间条件触发程序执行,系统时间到了就跑

依赖调度:

基于其他程序的执行结果进行调度运行,前面的任务跑完了,我开始跑

数据可用性调度:

处理一个数据的时候,只有数据存在的时候,才执行任务。

Azkaban不支持数据可用性调度

常见任务调度框架

Linux crontab:基于分钟的时间调度

优点:简单
创建/编辑:

        crontab -e
			*	*	*	*	*	command
			分  时  日  月 周 
			00	12  *	*	*  xxx/xx.sh
			每2分钟
			*/2 *	*	*	*
			每天早上6和晚上6点
			00   6,18	
			每天早8~12点,每隔5分钟
			*/5  8-12

缺点:

不能实现依赖调度和任务调度

ZEUS

阿里巴巴开源的,目前阿里巴巴不在维护他

优点:

支持大多数的任务类型的调度
支持Hive的元数据管理
功能比较全
全中文
提供web端可视化操作界面
实现了资源管理

缺点:

阿里巴巴开源zeus1,支持Hadoop1
zeus2只有个人开发者在维护
bug比较多

常用版本:携程版本

Oozie

Cloudera公司的产品

优点:

功能很多,支持的调度任务的类型最多

缺点:

安装部署,任务流的开发相对比较复杂

在公司中一般月Hue集成使用
HUE封装了很多客户端,Hadoop,hive,HBase,现在web平台上

azkaban介绍

优点:功能相对比较全面,操作性相对较好

特点:

Distributed Multiple Executor
分布式多执行器
MySQL Retry
MYSQL重试:元数据放在MYSQL中
Friendly UI
友好的UI
Conditional Workflow
Data Triggers 数据触发器
High Security 高安全性
Support plug-in extensions, from Web UI to job Execution
支持插件,能从web ui操作创建人物
Full Authorship management system
完整的人员管理系统

azkaban组件

web server

提供用户访问的接口、接收用户提交的工作流,实现工作流的监控

executor:执行工作的节点

执行用户提交的工作流任务

mysql

用于存储所有的工作流信息,状态、日志
在web server提交一些job,job id,开始时间等信息放在MYSQL中,
executor执行的状态,当前执行到第几步,执行的时间等信息也是 在MYSQL中的。、

安装与部署

此处安装需要对azkaban进行编译,生成下图所示的三个包
在这里插入图片描述

Linux下具体安装步骤

-》创建一个目录
	mkdir -p /opt/modules/azkaban-3.3.0 
-》解压3个安装包
-》配置MYSQL
	-》为azkaban创建用户、数据库、设置权限等
		CREATE DATABASE azkaban;
		CREATE USER 'azkaban'@'%' IDENTIFIED BY 'azkaban';
		GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;
		flush privileges;
		select user,host from mysql.user;
		sudo service mysqld restart
		
	-》执行相关的SQL创建对应表
		source  create-all-sql-0.1.0-SNAPSHOT.sql
		source update.active_executing_flows.3.0.sql;
		source update.execution_flows.3.0.sql;
-》配置Web server
	进入到web目录下
	生成认证密钥
		 keytool -keystore keystore -alias jetty -genkey -keyalg RSA
			密码输入:123456
			Enter keystore password:  
			Re-enter new password: 
			What is your first and last name?
			  [Unknown]:  huadian
			What is the name of your organizational unit?
			  [Unknown]:  huadian
			What is the name of your organization?
			  [Unknown]:  huadian
			What is the name of your City or Locality?
			  [Unknown]:  zhejiang    
			What is the name of your State or Province?
			  [Unknown]:  jiaxing 
			What is the two-letter country code for this unit?
			  [Unknown]:  CN
			Is CN=huadian, OU=huadian, O=huadian, L=zhejiang, ST=jiaxing, C=CN correct?
			  [no]:  yes

			Enter key password for <jetty>
					(RETURN if same as keystore password):  
			Re-enter new password: 
	修改web的配置文件
		conf/azkaban.properties
			default.timezone.id=Asia/Shanghai
			mysql.host=bigdata-hpsk01.huadian.com
			默认开启了SSL,访问时必须通过https来访问8443端口
				如果不想使用https,可以关闭ssl
					jetty.ssl.use=false;
			jetty.password=123456
			jetty.keypassword=123456
			jetty.trustpassword=123456
			
	添加log4j配置
		log4j.rootLogger=INFO,C
		log4j.appender.C=org.apache.log4j.ConsoleAppender
		log4j.appender.C.Target=System.err
		log4j.appender.C.layout=org.apache.log4j.PatternLayout
		log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
	添加日志转换Jar包
		将slf4j-log4j12-1.6.6.jar上传lib目标下
		
-》配置execute
	进入到/azkaban-exec-server-0.1.0-SNAPSHOT下面
	修改配置文件:conf/azkaban.properties
		default.timezone.id=Asia/Shanghai
		mysql.port=3306
		mysql.host=bigdata-hpsk01.huadian.com
		mysql.database=azkaban
	关闭内存检查
		vi plugins/jobtypes/commonprivate.properties
			memCheck.enabled=false
-》启动登录
	启动web server
		bin/azkaban-web-start.sh
	启动executor
		bin/azkaban-executor-start.sh 
	登录
		https://bigdata-hpsk01.huadian.com:8443
		azkaban/azkaban
	

使用

由于该框架提供了很良好的web界面操作,所以具体的使用建议去看官方文档,使用起来非常简单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无名一小卒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值