Azkaban学习小结

本文介绍了Azkaban和Oozie两大工作流任务调度器的特性与区别。Azkaban提供了Web UI,方便上传工作流、设置任务依赖、调度工作流,而Oozie则以XML形式定义调度流程,支持Workflow、Coordinator和Bundle Job。两者都具备Web用户界面和工作流管理功能,但在具体实现和配置上有不同的侧重点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oozie概述:

oozie是基于hadoop的调度器,以xml的形式写调度流程,可以调度mr,pig,hive,shell,jar等等。

主要的功能有

Workflow: 顺序执行流程节点,支持fork(分支多个节点),join(合并多个节点为一个)
Coordinator,定时触发workflow
Bundle Job,绑定多个coordinator

 

oozie格式:

写一个oozie,有两个是必要的:job.properties 和 workflow.xml(coordinator.xml,bundle.xml)

1.job.properties里定义环境变量

nameNodehdfs://xxx5:8020hdfs地址
jobTrackerxxx5:8034jobTracker地址
queueNamedefaultoozie队列
examplesRootexamples全局目录
oozie.usr.system.libpathtrue是否加载用户lib库
oozie.libpathshare/lib/user用户lib库
oozie.wf.appication.path${nameNode}/user/${user.name}/...oozie流程所在hdfs地址

注意:

workflow:oozie.wf.application.path

coordinator:oozie.coord.application.path

bundle:oozie.bundle.application.path



2. Azkaban介绍

Azkaban是由Linkedin开源的一个批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

它有如下功能特点:

· Web用户界面

· 方便上传工作流

· 方便设置任务之间的关系

· 调度工作流

· 认证/授权(权限的工作)

· 能够杀死并重新启动工作流

· 模块化和可插拔的插件机制

· 项目工作区

· 工作流和任务的日志记录和审计

Azkaban安装部署

3.1. 准备工作

Azkaban Web服务器:azkaban-web-server-2.5.0.tar.gz

Azkaban执行服务器:azkaban-executor-server-2.5.0.tar.gz

MySQL数据库

3.2. 安装

将安装文件上传到集群,最好上传到安装 hive、sqoop的机器上,方便命令的执行

3.2.1. azkaban web服务器安装

解压azkaban-web-server-2.5.0.tar.gz

tar –zxvf azkaban-web-server-2.5.0.tar.gz -C /hadoop/azkaban

将解压后的azkaban-web-server-2.5.0重新命名webserver

mv azkaban-web-server-2.5.0 server

3.2.2. azkaban 执行服器安装

解压azkaban-executor-server-2.5.0.tar.gz

tar –zxvf azkaban-executor-server-2.5.0.tar.gz -C /hadoop/azkaban

将解压后的azkaban-executor-server-2.5.0重新命名 executor

mv azkaban-executor-server-2.5.0 executor

###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;

mysql> source /hadoop/azkaban/create-all-sql-2.5.0.sql;

3.2.3. 创建SSL配置

命令:keytool -keystore keystore -alias jetty -genkey -keyalg RSA

运行此命令后,会提示输入当前生成 keystor的密码及相应信息,输入的密码请牢记

完成上述工作后,将在当前目录生成 keystore 证书文件,将keystore 考贝到 azkaban web服务器根目录中:cp keystore azkaban/server

3.2.4. 配置文件

注:先配置好服务器节点上的时区

1、先生成时区配置文件Asia/Shanghai,用交互式命令 tzselect 即可

2、拷贝该时区文件,覆盖系统本地时区配置

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3、azkaban web服务器配置

进入azkaban web服务器安装目录 conf目录

修改azkaban.properties文件

1. #Azkaban Personalization Settings

2. azkaban.name=Test #服务器UI名称,用于服务器上方显示的名字

3. azkaban.label=My Local Azkaban #描述

4. azkaban.color=#FF3601 #UI颜色

5. azkaban.default.servlet.path=/index #

6. web.resource.dir=web/ #默认根web目录

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

8. 

9. #Azkaban UserManager class

10. user.manager.class=azkaban.user.XmlUserManager #用户权限管理默认类

11. user.manager.xml.file=conf/azkaban-users.xml #用户配置,具体配置参加下文

12. 

13. #Loader for projects

14. executor.global.properties=conf/global.properties # global配置文件所在位置

15. azkaban.project.dir=projects

16. 

17. database.type=mysql #数据库类型

18. mysql.port=3306 #端口号

19. mysql.host=localhost #数据库连接IP

20. mysql.database=azkaban #数据库实例名

21. mysql.user=root #数据库用户名

22. mysql.password=root #数据库密码

23. mysql.numconnections=100 #最大连接数

24. 

25. # Velocity dev mode

26. velocity.dev.mode=false

27. # Jetty服务器属性.

28. jetty.maxThreads=25 #最大线程数

29. jetty.ssl.port=8443 #Jetty SSL端口

30. jetty.port=8081 #Jetty端口

31. jetty.keystore=keystore #SSL文件名

32. jetty.password=123456 #SSL文件密码

33. jetty.keypassword=123456 #Jetty主密码 与 keystore文件相同

34. jetty.truststore=keystore #SSL文件名

35. jetty.trustpassword=123456 # SSL文件密码

36. 

37. # 执行服务器属性

38. executor.port=12321 #执行服务器端口

39. 

40. # 邮件设置

41. mail.sender=xxxxxxxx@163.com #发送邮箱

42. mail.host=smtp.163.com #发送邮箱smtp地址

43. mail.user=xxxxxxxx #发送邮件时显示的名称

44. mail.password=********** #邮箱密码

45. job.failure.email=xxxxxxxx@163.com #任务失败时发送邮件的地址

46. job.success.email=xxxxxxxx@163.com #任务成功时发送邮件的地址

47. lockdown.create.projects=false #

48. cache.directory=cache #缓存目录

4、azkaban 执行服务器executor配置

进入执行服务器安装目录conf,修改azkaban.properties

1. #Azkaban

2. default.timezone.id=Asia/Shanghai

3. 

4. # Azkaban JobTypes 插件配置

5. azkaban.jobtype.plugin.dir=plugins/jobtypes #jobtype 插件所在位置

6. 

7. #Loader for projects

8. executor.global.properties=conf/global.properties

9. azkaban.project.dir=projects

10. 

11. #数据库设置

12. database.type=mysql #数据库类型(目前只支持mysql)

13. mysql.port=3306 #数据库端口号

14. mysql.host=192.168.20.200 #数据库IP地址

15. mysql.database=azkaban #数据库实例名

16. mysql.user=root #数据库用户名

17. mysql.password=root #数据库密码

18. mysql.numconnections=100 #最大连接数

19. 

20. # 执行服务器配置

21. executor.maxThreads=50 #最大线程数

22. executor.port=12321 #端口号(如修改,请与web服务中一致)

23. executor.flow.threads=30 #线程数

5、用户配置

进入azkaban web服务器conf目录,修改azkaban-users.xml

1. <azkaban-users>

2.  <user username="azkaban" password="azkaban" roles="admin" groups="azkaban" />

3.  <user username="metrics" password="metrics" roles="metrics"/>

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

5.  <role name="admin" permissions="ADMIN" />

6.  <role name="metrics" permissions="METRICS"/>

7. </azkaban-users>

3.3. 启动

3.3.1. web服务器

bin/azkaban-web-start.sh

3.3.2. 执行服务器

bin/azkaban-executor-start.sh

启动完成后,在浏览器(建议使用谷歌浏览器)中输入https://服务器IP地址:8443 ,即可访问azkaban服务了.在登录中输入刚才新的户用名及密码,点击 login.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值