oozie5.1 怎么写当天的日期字符串传递给workflow的hive Actions
时间: 2024-09-13 09:16:45 浏览: 44
在Oozie中传递日期字符串给Workflow中的Hive Action,可以通过设置Workflow的`<configuration>`部分来实现。下面是一个示例,展示了如何在Oozie Workflow中设置今天的日期并将其传递给Hive Action。
首先,在Workflow的定义中,你需要使用Oozie的`<date>`函数来获取当前日期,并将其格式化为所需的格式。例如,如果你想要的日期格式是“YYYY-MM-DD”,你可以使用以下配置:
```xml
<workflow-app xmlns="uri:oozie:workflow:0.5" name="date-hive-action">
...
<start to="hive-action" />
<action name="hive-action">
<hive xmlns="uri:oozie:hive-action:0.5">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<!-- 获取当前日期,并格式化为YYYY-MM-DD格式 -->
<property>
<name>oozie.launcher.mapred.job.properties今天的日期</name>
<value>${coord:formatTime(coord:nominalTime(), 'yyyy-MM-dd')}</value>
</property>
<!-- Hive脚本文件的配置 -->
<property>
<name>oozie.hive.schema.url</name>
<value>hdfs://namenode/path/to/hive/script</value>
</property>
</configuration>
<script>script.hql</script>
</hive>
<ok to="end"/>
<error to="kill"/>
</action>
<kill name="kill">
<message>Workflow failed, error message: ${wf:errorMessage(wf:lastErrorNode())}</message>
</kill>
<end name="end"/>
</workflow-app>
```
在上面的配置中,`<property>`标签用于设置Hive任务的配置。其中`<name>`是属性名称,`<value>`是属性值。`coord:formatTime(coord:nominalTime(), 'yyyy-MM-dd')`函数用于获取当前的时间,并将其格式化为“YYYY-MM-DD”的格式。这个格式化的日期随后可以被Hive脚本通过`今天的日期`变量引用。
确保将Hive脚本中的变量名替换为你的实际变量名。在Hive脚本`script.hql`中,你可以通过`今天的日期`变量来使用这个日期字符串。
阅读全文