gpt4 book ai didi

hadoop - 如何在 oozie 中访问在后续操作中在 java 操作中创建的自定义 hadoop 计数器

转载 作者:可可西里 更新时间:2023-11-01 15:14:06 24 4
gpt4 key购买 nike

我有一个在 java 操作中创建的计数器

("RunJavaMainClass") 
(context.getCounter("JOB_NAME_PREFIX", "QUEUED_COUNTER").increment(1);)

正常运行。

我希望能够在同一工作流中的后续 oozie 操作中访问计数器值。当我尝试使用

访问相同内容时
${hadoop:counters("RunJavaMainClass")["JOB_NAME_PREFIX"]["QUEUED_COUNTER"]} 

我收到错误:RunJavaMainClass 不支持 Hadoop 操作。知道我可能在这里遗漏了什么吗?谢谢

最佳答案

hadoop:* EL 函数仅适用于 Oozie MapReduce 操作,因此您将无法将它们用于您的 Java 操作,即使它大概运行了 MapReduce 作业。

相反,您可以使用 <capture-output/>在您的 Java 操作中添加标记以将输出传递到 Oozie 工作流上下文中。在您的驱动程序类中,您将 Java 属性文件写入在 oozie.action.output.properties 中找到的位置。包含您想要传回的数据(在本例中是您想要的计数器),然后使用 ${wf:actionData('action_name')['property_name']} 从工作流中读取它.可以找到有关此技术的更多信息 here .

关于hadoop - 如何在 oozie 中访问在后续操作中在 java 操作中创建的自定义 hadoop 计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28179055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com