我想根据文件夹安排一个oozie作业,即
我在HDFS位置有一个文件夹,每天都会在该文件夹中添加一个文件,格式为date.txt(exp:20160802.txt)。
如果有任何新文件添加到该文件夹中,我想安排一个OOZIE批处理。
请帮助我,我如何在我的用例场景中安排。
提前谢谢。
Oozie工作流作业基于规则的时间间隔和/或数据可用性运行。而且,在某些情况下,它们可能由外部事件触发。协调员在这里发挥作用。
您可以使用oozie coordinator来检查数据依赖性,并使用coordinator EL函数触发oozie工作流在您的情况下,每天都会将您的文件添加到带有时间戳的hdfs中。因此,使用数据集可以实现。
来自文档
示例每天00:15 PST8PDT生成一次数据集,完成标志设置为空:
<dataset name="logs" frequency="${coord:days(1)}"
initial-instance="2009-02-15T08:15Z" timezone="America/Los_Angeles">
<uri-template>
hdfs://foo:9000/app/logs/${market}/${YEAR}${MONTH}/${DAY}/data
</uri-template>
<done-flag></done-flag>
</dataset>
The dataset would resolve to the following URIs and Coordinator looks for the existence of the directory itself:
[market] will be replaced with user given property. hdfs://foo:9000/usr/app/[market]/2009/02/15/data
hdfs://foo:9000/usr/app/[market]/2009/02/16/data
hdfs://foo:9000/usr/app/[market]/2009/02/17/data
请阅读文档,其中给出了许多示例。它很好。
1.关于协调员
2.数据集