1

我想根据文件夹安排一个 oozie 作业,即

我在 HDFS 位置有一个文件夹,每天都会在该文件夹中添加一个文件,格式为 date.txt (exp :20160802.txt )。

如果该文件夹中添加了任何新文件,我想安排一个 OOZIE 批处理。

请帮我解决这个问题,我该如何安排我的用例场景。

提前致谢。

4

1 回答 1

1

Oozie 工作流作业基于定期时间间隔和/或数据可用性运行。而且,在某些情况下,它们可以由外部事件触发。协调器在这里发挥作用。

您可以使用 oozie coordinator 检查数据依赖性并使用 Coordinator EL 函数触发 oozie 工作流。 在您的情况下,您的文件每天都被添加到带有时间戳的 hdfs。因此,您可以使用数据集来实现。

从文档

示例每天 00:15 PST8PDT 生成一次的数据集,并且将 done-flag 设置为空:

  <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.数据集

于 2016-08-02T11:22:03.537 回答