Azkaban简介
- 为什么需要工作流调度器?
1、一个完整的数据分析系统通常都是由大量任务单组成: shell 脚本程序,java 程序,mapreduce 程序、hive 脚本等
2、各任务单之间存在时间先后及前后依赖关系
3、为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行
简单的任务调度:直接使用 linux 的 crontab
来定义,crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command
其中:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
- 什么是Azkaban
Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。
它有如下功能特点:
1、Web用户界面
2、方便上传工作流
3、方便设置任务之间的关系
4、调度工作流
5、认证/授权(权限的工作)
6、能够杀死并重新启动工作流
7、模块化和可插拔的插件机制
8、项目工作区
9、工作流和任务的日志记录和审计
- azkaban调度的任务有可能有那些类型
1、shell脚本
2、java程序
3、MR程序
4、spark程序
5、hive的sql
6、python脚本
7、sqoop任务
Azkaban安装
- 下载Azkaban源码
git clone https://github.com/azkaban/azkaban.git
- 安装Azkaban
cd azkaban; ./gradlew build installDist
这里可能回buiding蛮久 - 启动solo server
cd azkaban-solo-server/build/install/azkaban-solo-server; bin/start-solo.sh
启动完毕后,我们可以通过8081端口,查看启动的阿兹卡班。默认用户名和密码均为azkaban。
Azkaban配置
在conf文件夹内,有如下文件:
azkaban.private.properties
用来存储类似mysql的密码。azkaban.properties
配置运行时的参数。azkaban-users.xml
配置用户信息。global.properties
作为共享属性传递给每个工作流和作业的全局静态属性。
azkaban.properties
一般来说不用改什么,下面几点可以注意一下:
azkaban.name
:用来命名阿兹卡班,在多个azkaban实例的时候,用来区分。
default.timezone
:指定时区,默认是洛杉矶,可以改成Asia/Shanghai
job.max.Xms
:任务启动时的最大内存
job.max.Xmx
:任务能获得的最大内存
azkaban-users.xml
user标签的配置如下:
role标签的配置如下:
特别说一下,permissions有这么几个等级:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/87227.html