我想创建一个事件驱动的oozie协调器。但目录路径会定期更改。我不想在代码中对目录进行硬编码。
<datasets>
<dataset name="test_co" frequency="${coord:minutes(120)}" initial-instance="${coordStartDate}" timezone="${timezone}">
<uri-template>**${nameNode}/dynamicName**</uri-template>
<done-flag>_OK</done-flag>
</dataset>
</datasets>
如何在触发此操作之前运行shell脚本,它会创建文件夹名称并检查该文件夹中是否存在OK文件?
答案 0 :(得分:1)
Oozie支持使用协调器数据集创建动态目录结构,即日期目录(如果可能,请使用)。 e.g。
<datasets>
<dataset name="logs" frequency="${coord:hours(1)}" initial-instance="2009- 01-01T01:00Z" timezone="UTC">
<uri-template>hdfs://bar:9000/app/logs/${YEAR}${MONTH}/${DAY}/${HOUR}</uri-template>
</dataset>
</datasets>
今天在oozie代码上运行后,即viz.22-03-2017 16:00 PM
目录结构如下:hdfs://bar:9000/app/logs/2017/03/22/16