开发者学堂课程【Hue 大数据可视化终端课程:集成 Oozie 服务&定时调度配置】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/719/detail/12856
集成 Oozie 服务&定时调度配置
内容介绍
一、定时调度任务配置
二、批处理演示
一、定时调度任务配置
普通的 workflow 不足以满足周期的定时执行,这时候需要一个协调者。那么在 hue 当中,当它跟 oozie 整合之后,同样可以配置定时调度任务。
打开浏览器,点击 query 下方的 schedule。注意,不再选择 workflow 了,因为 workflow 是一个普通的工作流,需要手动提交,现在选择 schedule,打开之后,是 schedule 相关的一个编辑页面。
首先可以给这个调度任务命名,例如叫做 hue。通过 hue 来进行调度的,描述的根据自己的需求,接下来选择要去调度哪个工作流,点击它之后,发现这里就会显示出来当下整个 hue 当中已经保存好的工作流。
由此可见要想对一个工作流进行调度,是首先必须把这个工作流编辑好,例如,对之前的 hue schedule 进行调度,为它开启一个定时调度的功能,关于怎么样去定时周期、多久一次的操作方式,下面会有相关的选项。点击 OPtions型按钮,特别注意时区,当下无论是 oozie 还是 hue,配置的时候都上海东八区,因此一定要选择对时区。涉及到时间定时执行那差几个时区那非常的严重。选择 Asia/Shanghai,有开始、结束两个时间。这个开始时间一定要是一个未来的时间,不能把它选择过去的时间。例如。选择一个按钮,比如选择42 43,拿46执行。
写好之后,下面就是结束的时间,在这个时间范围内执行根据每一天,还是每一个小时,还是每一周。例如每一个小时,每个小时的几点钟,如果选择一它就在0~1执行,那么这时候可以随便选择。那如果都不选择,选择 all 为所有分钟,相当于每分钟执行一次,这时候进行相关的选择是非常方便。
相当于在每小时的 0分 1分 2分去执行,不需要写相关的表达式。目前为 all。相当于从下午的2.46开始的,每分钟都去执行一次,如果有参数的可以提交参数,修改好之后 ,点击 save 保存,保存好之后,这个工作流就可以进行提交。提交了的时间可以再做一个相关的验证,如果没问题直接点 submit 提交。 点击刷新,现在这里还没有到执行时间,所以没有任何选项。如果想看一下配置位置,右边显示 schedule,就是刚才配置的 hue schedule,显示现在正在进行。那么当满足时间执行的时候,job 刷新就可以看到执行效果。打开调度,里面会显示相关的信息,包括日志配置的参数、仓位文件属性,重点是列举出接下来需要执行的一个时间段。
例如看一下执行时间,从2点46开始,47 48 49 50每分钟执行一次,每分钟都执行一下个 Text 。 现在都处于waiting,waiting 说明没有执行,没有满足时间。到达时间后,立即变成 running 了,到了时间触发。结束后有success 成功,说明2.46分执行成功。继续等待。下一个执行如果执行错误了,可以点进去可以看它具体里面的相关执行日志 log 报什么问题,那么这样就完成了相关的配置。整个配置文件,包括流程文件等回显相关事务对对执行没有影响,这样就满足通过 hue 和 oozie 整合去提交的定时调度任务。
回到服务器看执行结果,因为开启的是脚本打印的时间,此时做一个相关的验证。首先来到 node-1服务器上,查看发现没有输出日志。想查看刚才执行的程序在什么位置执行,可以打开的历史日志服务器。在 note-1的端口是19888。显示出来已经执行完的相关日志的 Emma 情况。
查看点击 Map 中有相关的日志,它是运行在的 note-3机器上,所以来到 nod-3服务器这里克隆一个新的回话,在查看,发现多了一个 Hellohue.txt,出现相关的时间,完成了相关的执行。
利用 hue 跟 oozie 整合之后,去配置定时调度任务,极大方便了去编写各种定时频率的时间表达式。
二、批处理演示
在下面除了可以依赖 work follow 调度之外,还可以去创建 Bundle,可以一个批示创建多个调度
当点击 Bundle 的时候,选择 coordinator,为 schedule 的。因此,workflow、schedule、Bunle 三个之间应该是形成一个非常明显关系的,workflow 是普通的工作流, Schedule 的是针对 workflow 做定时,Bunle 是针对 Schedule做一个批处理。例如有两个定时任务,一个是1:00执行的,一个是1:20执行的,需要在一个批次进行处理提交,创立一个 Bunle 绑定两个 schedule 就可以了。
这样利用 hue 和 oozie 整合之后,进行任务调度将会极大的方便,那在企业当中很少手动编写 oozie 的配置文件,通过 hue 会极大的方便开发