oozie协调器在hdfs路径中的任何文件时触发

时间:2015-09-29 11:02:54

标签: oozie oozie-coordinator

我试图创建一个oozie协调器,在HDFS路径中添加任何文件时执行工作流程,但我只找到示例触发指定文件的工作流程,我可以在done-flag中使用像regex这样的东西吗?(不工作添加的样本),任何建议??:

<coordinator-app name="coordinator_test" frequency="${frequency}" start="${start}" end="${end}" timezone="${timezone}" xmlns="uri:oozie:coordinator:0.1">
    <controls>
        <concurrency>1</concurrency>
        <execution>FIFO</execution>
        <throttle>5</throttle>
    </controls>
    <datasets>
        <dataset name="input1" frequency="2" initial-instance="2015-09-23T00:00Z" timezone="UTC">
            <uri-template>${nameNode}/user/oozie/test/created</uri-template>
            <done-flag>*</done-flag>
        </dataset>
    </datasets>
    <input-events>
        <data-in name="coordInput1" dataset="input1">
            <start-instance>${coord:current(-1)}</start-instance>
            <end-instance>${coord:current(0)}</end-instance>
        </data-in>
    </input-events>
    <action>
        <workflow>
            <app-path>${nameNode}/user/oozie/workflow.xml</app-path>
        </workflow>
    </action>
</coordinator-app>

1 个答案:

答案 0 :(得分:0)

更新:

对于不同类型的文件,我将使用不同的uri-template指定不同的数据集,并在那里指定各种文件名/类型。它们可以指向相同的位置,文件名(使用wildchars)将指定不同类型的源。

像: $ {} HDFS /学生*

$ {} HDFS /教师*

使用决策控制节点以正确的脚本处理数据。

尝试

<done-flag></done-flag>

而不是路径存在时的触发器。

  

done-flag:数据集的完成文件。如果done-flag不是   指定,然后Oozie配置Hadoop创建一个_SUCCESS文件   输出目录。如果done标志设置为空,则   协调员查找目录本身的存在。