hadoop - 每天重新运行 oozie 工作流

标签 hadoop apache-pig workflow oozie oozie-coordinator

我有一个 Oozie 协调器,它在启动时将其开始时间设置为 365 天前,然后以每天的频率运行其工作流,直到到达具有输入数据的最新日期。所以 coordinator.xml 看起来像这样:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<coordinator-app name="${jobName}" frequency="${coord:days(1)}" start="${startTime}" end="${endTime}" timezone="${timezone}" xmlns="uri:oozie:coordinator:0.2">
    <controls>
        <timeout>-1</timeout>
        <concurrency>30</concurrency>
        <execution>FIFO</execution>
    </controls>

    <datasets>
        <dataset name="myData" frequency="${coord:days(1)}" initial-instance="${initialTime}" timezone="${timezone}">
            <uri-template>${outputPath}/${YEAR}${MONTH}${DAY}</uri-template>
        </dataset>
    </datasets>

    <input-events>
        <data-in name="myInput" dataset="myData">
            <instance>${coord:current(-1)}</instance>
        </data-in>
    </input-events>

    <action>
        <workflow>
            <app-path>${appPath}</app-path>
            <configuration>
                <property>
                    <name>myInput</name>
                    <value>${coord:dataIn('myInput')}</value>
                </property>
                <property>
                    <name>date</name>
                    <value>${coord:formatTime(coord:dateOffset(coord:nominalTime(), -1, 'DAY'), 'yyyyMMdd')}</value>
                </property>
            </configuration>
        </workflow>
    </action>    
</coordinator-app>

启动时,此协调器会触发 365 工作流。然后第二天,它只为当天的输入数据运行一个工作流。以此类推第二天。

现在要求发生了变化,我需要每天运行 365 工作流,而不仅仅是第一次!所以在启动时,我希望它像现在一样运行。但是第二天,当输入数据可用时,我需要返回并再次运行过去 365 天的日常工作流程。一旦检测到新的输入数据,接下来的每一天都依此类推。

我怎样才能做到这一点? 谢谢,

阿尔瓦罗

最佳答案

在协调器的 data-in 标签中使用 start-instanceend-instance 指定要考虑的实例范围输入。

start-instance:是指实例范围的开始(同步数据集的时间)。 end-instance:是指实例范围的结束(同步数据集的时间)。

<input-events>
    <data-in name="myInput" dataset="myData">
        <start-instance>${coord:current(-365)}</start-instance>
        <end-instance>${coord:current(-1)}</end-instance>
    </data-in>
</input-events>

更多信息请引用:Synchronous Coordinator Application Definition

关于hadoop - 每天重新运行 oozie 工作流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41603047/

相关文章:

sharepoint - 安装 Windows SharePoint Services 3.0 Service Pack 1 后,声明性工作流不会自动启动

hadoop - 如何在Hadoop中的某些工作中描述一份工作

hadoop - 在 Yarn 集群上运行 Spark 作业

apache-pig - 在 pig 中逃脱美元符号?

每隔一段时间调用一次 Python 函数

sharepoint - 从 SharePoint 2010 中列表项上的自定义按钮/操作启动工作流(全部使用 Visual Studio 2010)

hadoop - HDFS 中的最佳 block 大小 - 大块大小会造成伤害吗

java - 错误原因 java.lang.IndexOutOfBoundsException : Index: 0, Size: 0

mysql - 计算Apache Pig中的不同项目

hadoop - 将 Pig 与 Hadoop 一起使用时出现 "Failed to create DataStorage"错误