Apache Ooie--实战操作-定时调度任务|学习笔记

简介: 快速学习 Apache Ooie--实战操作-定时调度任务

开发者学堂课程【Oozie 知识精讲与实战演练Apache Ooie--实战操作-定时调度任务】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/716/detail/12791


Apache Oozie--实战操作--定时调度任务


内容介绍

一、Oozie 定时任务调度

二、基于时间的调度任务如何配置

三、具体的相关配置

四、修改 coordinator.xml

五、修改 workflow.xml

六、把配置的文件夹上传到 hdfs 指定的路径当中


一、Oozie 定时任务调度

1.Oozie  本身的 workflow 并不能满足于定时周期性的执行,因此需要一个协调者来支撑,这个协调者被称为 Coordinator。Coordinator 模块主要通过 xml 文件来进行相关配置。通过它里面配置的属性,就可以控制工作流程、方式和周期重复的执行。

2.在 Oozie 中,Coordinator 的调度主要有两种实现方式。

(1)第一种是基于时间的定时任务调度。即指定三个参数,第一个是起始时间,第二个是结束时间,第三个是调度频率,那么它会在时间范围内按照指定的频率,周期性地重复地去执行工作流程。这种方式使用率最高;

(2)第二种是基于数据的任务调度,即检测输入数据是否已准备好,只有准备好,有了数据,才会触发任务的执行。


二、基于时间的调度任务如何配置

1.使用官方自带的模板,在它的安装包下有个 examples 文件夹,里面有个 cron 文件,这里面有定时调度的各种配置的模板,下面以

cd /export/servers/oozie-4.1.θ-cdh5.14.θ

cp -r expmples/apps/cron oozie_works/cron-job

为例来做相关的修改。

首先,先定到安装包的根目录图片,然后把例子中的 cron 文件夹完整地拷贝到工作路径,重命名为 cron-job 并直接复制。

图片1.png

(2)第二步:拷贝 hello.sh 脚本

以调度 shell 周期性地执行为例,

cd /export/servers/oozie-4.1.θ-cdh5. 14.θ/oozie_ works

cp shell/hello. sh cron-job/

把它进行复制。

图片2.png

复制完成之后,打开定时任务的文件夹。这里面除了第一个没有文件,其他的正好跟之前调度的 shell 脚本完全一致。一个是 job 任务的时间配置,还有一个是工作流程的 xml 文件。如果没有上面的 coordinator .xml,那么下面的三个就是普通的 oozie 工作流程。但是它们三个并不能满足于周期性地触发执行。这时就需要协调者 xml 文件来控制他们如何进行周期性地执行。


三、具体的相关配置

使用 vi 编辑器,建议大家使用远程配置,或者把这些配置文件下载到本地,然后再把它上传过来。使用 Notepad++ 远程编辑。打开 Notepad++ ,选择刷新。在 oozie_works 下有个刚才创建的 cron-job。首先,编辑 job.properties 的属性信息。双击 job.properties 文件夹,这里面主要是一些提交任务当中的相关属性。

oozie.coord.application.path=${nameNode}/user/${user.name}/${examplesRoot}/cron-job/coordinator.xml

这个参数叫做 coord.application.path,这个参数指定的是 coordinator.xml 文件的路径。这个路径必须要指定正确。

#start:必须设置为未来时间,否则任务失败

start=2019-05-22T19:20+0800

end=2019-08-22T19:20+0800

EXEC= hello.sh

workflowAppUri=${nameNode}/user/${user.name}/${examplesRoot}/cron-job/workflow.xml

上面是设置定时的起始和结束时间。针对时间设置,有两点需要特别强调,第一是时间的格式,之前已经修改了工作的时区为东八区,所以时间格式必须按照这种方式去写,后面有+800,而且周边没有空格。第二点是开始的时间必须是未来的时间,不可能从过去的时间开始调度,因为此时会出现任务出错。然后配置的脚本名称是 shell 脚本名称,跟上面拷贝的保持一致。


四、修改 coordinator.xml

首先,回到编辑当中。第一个是 nameNode 的地址,进行修改。第二个 jobTracker 的地址也进行修改。第三个 queueName 默认为  default 不需要修改。文件夹 exampleRoot 叫 oozie_works,需要修改。接下来是 cordinator 的路径,它位于 userRoot 下的 oozie works 下的 cron-job 下的 coordinator.xml,对其进行修改。再复制上两个时间格式并粘贴,修改时间为将来的时间,比如

start=2019-06-09T13:00+0800

end=2019-06-09T19:20+0800

因此它会从2019年6月9日13:00开始,到2019年6月9日19:20结束,并在这个时间范围内周期性地执行。但是此时并没有配置合种方式进行周期性。修改好之后指定任务名称为 hello.sh。 最后修改 workflow.xml 文件的路径,直接复制粘贴,并检查是否粘贴错误。

修改 coordinator.xml 文件即协调者文件的属性信息。需要修改名字为 cron-job 或者自己重新取个名字,但后面使用时需要保持一致。然后修改周期的频率 frequency。有两种表达频率的方式,第一种是 frequency="${coord:minutes(1)}"。minutes 可以换成 hours, days 等。第二种方式为frequency="10 9* * *" 每天上午的09:10:00开始执行任务

frequency="01 * * *" 每天凌晨的01:00开始执行任务

还需要修改起始时间和结束时间。


五、修改 workflow.xml

以调度一个 shell 脚本为例。需要在 xmlns 指定文件执行的名字和路径。

${jobTracker}

${nameNode}

mapred.job.queue.name

${queueName}

${EXEC}

/user/root/oozie_ works/cron-job/${EXEC}#${EXEC}

把上面复制这段程编码复制过去。


六、把配置的文件夹上传到 hdfs 指定的路径当中

先回到上一级目录当中,

图片3.png

然后使用 put 操作就完成了。

图片4.png

上传过去后可以通过浏览器进行查看。

图片5.png

使用 oozie 自带的进行提交,提交后不会立即执行,必须满足调度。检查一下调度的解析配置是否正确:选择 Coordinator Jobs

图片6.png

点击刷新按钮,等他加载。点击工作流程,弹出一个对话框。

图片7.png

对话框里有定时调度的相关的编号、名字、状态时间。下面有执行的计划,可以看到每分钟执行一次。计划的状态那一栏由 Wating 变成 Running 再变成 Suceed。

图片8.png

提交完后,检查是否能执行。其中有一些细节需要注意,比如-这个符号很有可能中英文符号混用。

相关文章
|
2月前
|
运维 Linux Apache
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
23 2
|
2月前
|
域名解析 Linux Apache
Linux Apache服务详解——虚拟网站主机功能实战
Linux Apache服务详解——虚拟网站主机功能实战
36 5
|
2月前
|
运维 Linux Apache
LAMP架构调优(九)——Apache Rewrite功能实战
LAMP架构调优(九)——Apache Rewrite功能实战
14 1
|
2月前
|
监控 API Apache
实战!配置DataDog监控Apache Hudi应用指标
实战!配置DataDog监控Apache Hudi应用指标
22 0
|
2月前
|
消息中间件 JSON Kafka
实战 | Apache Hudi回调功能简介及使用示例
实战 | Apache Hudi回调功能简介及使用示例
17 0
|
3月前
|
消息中间件 Kafka Apache
Apache Flink 是一个开源的分布式流处理框架
Apache Flink 是一个开源的分布式流处理框架
487 5
|
2月前
|
消息中间件 API Apache
官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会
本文整理自阿里云开源大数据平台徐榜江 (雪尽),关于阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会。
1427 2
官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会
|
2月前
|
SQL Java API
官宣|Apache Flink 1.19 发布公告
Apache Flink PMC(项目管理委员)很高兴地宣布发布 Apache Flink 1.19.0。
1371 2
官宣|Apache Flink 1.19 发布公告
|
2月前
|
SQL Apache 流计算
Apache Flink官方网站提供了关于如何使用Docker进行Flink CDC测试的文档
【2月更文挑战第25天】Apache Flink官方网站提供了关于如何使用Docker进行Flink CDC测试的文档
147 3
|
2月前
|
Oracle 关系型数据库 流计算
flink cdc 同步问题之报错org.apache.flink.util.SerializedThrowable:如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。

推荐镜像

更多