关于Oozie的input-events和done-flag

关于Oozie的input-events和done-flag


工作流的执行条件

当coordinator指定的一个workflow已经进入执行时间窗口时,oozie会首先检查所有的input-events是否都已“发生”(满足),检查主要是分两个方面:

  1. 指定的文件或文件夹是否已经存在?
  2. 如果指定了done-flag, 检查done-flag文件是否存在

当切仅当所有的input-events都已发生,工作流才会进入runing状态,否则, oozie会持续监视指定的文件或文件夹,一但它们创建出来,或者生成了done-flag文件,工作流会立即进入running状态。

关于done-flag

从应用的角度来看,如是监视的是文件或文件夹,在它们建立的那一刻,数据可能并未写入完整,此时立即执行action可能会丢失数据或出现错误,一个好的处理方法是等所有文件写出完成之后,写一个标志文件,能过这个标志文件来启动action,这就是 done-flag的作用!

以下是官方文档中对done-flag的说明:

  • If the done-flag is omitted the coordinator will wait for the presence of a _SUCCESS file in the directory (Note: MapReduce jobs create this on successful completion automatically).
  • If the done-flag is present but empty, then the existence of the directory itself indicates that the dataset is ready.
  • If the done-flag is present but non-empty, Oozie will check for the presence of the named file within the directory, and will be considered ready (done)

对于done-flag需要说明的是:

对于input event, 当它引用的dateset指定了done-flag,则oozie在执行action之前会“读”这个flag文件,以判断是否可以开始后续的动作。需要特别注意的是:input event不是一定要被某个action作为参数(配置属性)来引用,虽然大多数时候是这样的,如果一个input event没有被任何action引用,实际上它起到的是“输入检查”的作用,也就是在开始任何action之前,检查制定的文件或文件夹是否存在,如果指定了done flag文件,再检查done flag文件是否存在。

对于output event, 当它引用的dateset指定了done-flag, oozie并不会在执行action之后去“写”这个flag文件。

done-flag是一种非常巧妙的标记文件已就绪的做法,可以说是已经是大数据领域里最为常见的一种“模式”。典型的例子是MR在执行任务结束时生成的_SUCCESS文件。

生成done-flag是如此普遍的需要,以至于hdfs的cli直接提供了命令用于生成done-flag文件,以及是一个例子:

#Create a flag file named _SUCCESS under a certain input folder.
hdfs dfs -touchz "/puth/to/input/folder/_SUCCESS"
时间: 2024-08-29 16:25:23

关于Oozie的input-events和done-flag的相关文章

安卓 Input Events(输入事件)

在安卓中,有不止一种方法从你的应用截取用户交互事件.在你的用户界面中考虑事件,途径就是从用户界面中的一个指定的view对象中捕获事件.该view提供了这样做的方法. 在你用来组成你布局的不同的view类中,你或许注意到了一些公共的回调方法似乎看起来对UI事件有用.这些方法由安卓的框架调用,当各自的操作在对象中发生时.例如,当一个view (一个按钮)被触摸,在这个对象中的onTouchEvent() 方法就会被调用.然而,为了拦截这个事件,你必须继承该类(button )并且重写该方法(onTo

oozie coordinator 定时调度

  coordinator application: coordinator application是在满足一组条件时触发动作(通常是工作流作业)的程序.条件可以是时间频率.新数据集实例或其他外部事件.  coordinator application的类型:同步:它的协调器动作是在指定的时间间隔创建的,通常是参数化的.  coordinator job: 要创建一个coordinator job,必须向协调器引擎提供解决所有coordinator application参数的作业配置. coo

Android系统源码阅读(13):Input消息的分发过程

Android系统源码阅读(13):Input消息的分发过程 请对照AOSP版本:6.0.1_r50.学校电脑好渣,看源码时卡半天 先回顾一下前两篇文章.在设备没有事件输入的时候,InputReader和InputDispatcher都处于睡眠状态.当输入事件发生,InputReader首先被激活,然后发送读取消息,激活Dispatcher.Dispatcher被激活以后,将消息发送给当前激活窗口的主线程,然后睡眠等待主线程处理完这个事件.主线程被激活后,会处理相应的消息,处理完毕后反馈给Dis

Document Object Model (DOM) Level 3 Events Specification

Document Object Model (DOM) Level 3 Events Specification W3C Working Draft 25 September 2014 This version: http://www.w3.org/TR/2014/WD-DOM-Level-3-Events-20140925/ Latest published version: http://www.w3.org/TR/DOM-Level-3-Events/ Latest editor's dr

[RxJS] Getting Input Text with Map

By default, Inputs will push input events into the stream. This lesson shows you how to use map to convert the input event into the text you actually want. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta nam

直接获取上传文件的input值

js函数 <script> function m(i){ var url=i.value; url=url.split("\\"); var n = url[url.length-1]; n = n.substring(0,n.lastIndexOf('.')); document.getElementById('title').value = n; } </script> 资质描述<input type="text" name=&qu

oozie说明(本文参考多处,自己留看)

Oozie概述: Oozie是一个基于Hadoop工作流引擎,也可以称为调度器,它以xml的形式写调度流程,可以调度mr,pig,hive,shell,jar,spark等等.在实际工作中,遇到对数据进行一连串的操作的时候很实用,不需要自己写一些处理代码了,只需要定义好各个action,然后把他们串在一个工作流里面就可以自动执行了.对于大数据的分析工作非常有用. (以下介绍内容基于Oozie 4.1.0版本) Oozie有几个主要概念: workflow :工作流 ,顺序执行流程节点,支持for

即时搜索:对于ios自带输入法输入中文时多次触发input事件的处理

实现移动端的即时搜索的最佳方案,一定是使用input propertychange事件了,但是在ios设备上遇到了问题,使用ios自带输入法输入汉字时,会出现多次触发input事件的情况,一开始可能由于搜索的关键字不得法,没有即时找到合适的方案,后来终于在网上找到了解决方案,现记录如下: 代码实现 /** * @param flag: 用于标记是否是非直接的文字输入 */ var flag = false; $('#id').on({ 'compositionstart': function()

Input ANR处理流程

ANR时间区别便是指当前这次的事件dispatch过程中执行findFocusedWindowTargetsLocked()方法到下一次执行resetANRTimeoutsLocked()的时间区间. 以下5个时机会reset. 都位于InputDispatcher.cpp文件: resetAndDropEverythingLocked releasePendingEventLocked setFocusedApplication dispatchOnceInnerLocked setInput

input事件中文触发多次问题研究

我们在网页中经常会遇到实时搜索的情况,或者其他类似需要input实时响应的问题,一般情况下,我们是利用input和propertychange事件来监听input内容的变化来响应,但是有一个问题就是当输入汉字的时候,可能我们要输入 '实时' 的时候,我们的input框中会出现 'shishi'直到我们的空格才会变成 '实时',这也就意味着我们依次响应了 's','sh','shi','shis','shish','shishi','实时',前面的结果明显不是我们需要的 ,造成了我们很多次无用的提