oozie worflow中的多个hive2操作接收相同的时间戳

oozie worflow中的多个hive2操作接收相同的时间戳,hive,workflow,oozie,Hive,Workflow,Oozie,我构建了一个包含两个hive2操作的工作流,并使用色调运行它。我需要在工作流启动时从系统获取当前时间,并将其传递给两个操作。 这是工作流的结构: <?xml version="1.0" encoding="UTF-8"?> <workflow-app xmlns="uri:oozie:workflow:0.5" name="workflow.xml"> <global> <job-tracker>host1:1234<

我构建了一个包含两个hive2操作的工作流,并使用色调运行它。我需要在工作流启动时从系统获取当前时间,并将其传递给两个操作。 这是工作流的结构:

<?xml version="1.0" encoding="UTF-8"?>

<workflow-app xmlns="uri:oozie:workflow:0.5" name="workflow.xml">
    <global>
        <job-tracker>host1:1234</job-tracker>
        <name-node>hdfs://myhost:4312</name-node>
        <configuration> 
            <property> 
                <name>execution_start</name> 
                <value>${timestamp()}</value> 
            </property> 
        </configuration> 
    </global>
    <start to="script1" />
    <action name="script1">
        <hive2 xmlns="uri:oozie:hive2-action:0.2">
            <jdbc-url>jdbc:hive2://myhost:10/default</jdbc-url>
            <script>script1.hql</script>
            <param>execution_start=${execution_start}</param>
        </hive2>
        <ok to="script2" />
        <error to="fail" />
    </action>
    <action name="script2">
        <hive2 xmlns="uri:oozie:hive2-action:0.2">
            <jdbc-url>jdbc:hive2://myhost:10/default</jdbc-url>
            <script>script2.hql</script>
            <param>execution_start=${execution_start}</param>
        </hive2>
        <ok to="end" />
        <error to="fail" />
    </action>
    <kill name="fail">
        <message>Sub workflow failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name="end" />
</workflow-app>

host1:1234
hdfs://myhost:4312
开始执行
${timestamp()}
jdbc:hive2://myhost:10/default
脚本1.hql
执行\u开始=${execution\u开始}
jdbc:hive2://myhost:10/default
脚本2.hql
执行\u开始=${execution\u开始}
子工作流失败,错误消息[${wf:errorMessage(wf:lastErrorNode())}]
我需要在两个配置单元操作中具有相同的时间戳。到目前为止,Hue要求输入名为
execution\u start
的参数

我还尝试了:
execution\u start=${wf:conf('execution\u start')}>
。我没有被提示输入参数,但是我在脚本中得到一个空值


请注意,
execution\u start=${timestamp()}>
起作用,但它不适合我,因为每个操作的时间戳都不同。

您可以首先调用一个只返回时间戳的Oozie Shell操作,捕获第一个操作的输出,然后使用
execution\u start=${wf:actionData将其传递给Hive2操作('TimestampShell')}

请参阅我对关于
的回答,该回答不适用于所有动作类型…也不是定义“参数”的地方…无论如何都无法从EL表达式初始化。我看到了很多答案,但不是你的答案,谢谢你的内部消息。我知道它不起作用,为什么不起作用,但我仍在寻找解决方案。编写代码是解释我希望实现什么的一种简单方法。如果工作流由协调员安排,你可以使用“工作流理论开始时间”,参见。