gpt4 book ai didi

java - 访问 Oozie 作业中在命令行输入的属性

转载 作者:行者123 更新时间:2023-12-01 13:39:58 28 4
gpt4 key购买 nike

我的问题是,我未能成功找到 Oozie 作业中从命令行输入的属性。这就是我开始 oozie 工作的方式:

$ oozie job -config /home/mruser/conf/mapreduce.properties -Dsample.property.filename=/path/to/file/samplefile.txt -run -oozie http://server:11000/oozie

这是 java 程序中的相关代码片段。

Configuration conf = new Configuration();
String configurationLocation = System.getProperty("oozie.action.conf.xml");
Path localConfigurationPath = new Path(configurationLocation);
conf.addResource(localConfigurationPath);
Job job = new Job(conf, "Sample oozie data load");

Configuration.dumpConfiguration(conf, new BufferedWriter(new OutputStreamWriter(System.out)));
String samplePropertyFilenameFromJobConfig = job.getConfiguration().get("sample.property.filename");
String samplePropertyFilenameFromProperty = System.getProperty("sample.property.filename");

在上面的代码中,“samplePropertyFilenameFromJobConfig”“samplePropertyFilenameFromProperty”均为空。另外,我在 "Configuration.dumpConfiguration()" 的输出中找不到我的属性。

但是,当我在 Oozie UI 中找到我的工作并单击“作业配置”选项卡时,我看到了

<property>
<name>sample.resolution.filename</name>
<value>/path/to/file/samplefile.txt</value>
</property>

请注意,当我调出已执行的特定操作并单击“操作配置”选项卡时,我看不到此配置。

如何在 Oozie 下运行的 Java 程序中获取此特定属性?

最佳答案

我发现我错过了什么。在workflow.xml 文件中我需要包含:

<property>
<name>sample.property.filename</name>
<value>${wf:conf("sample.property.filename")}</value>
</property>

关于java - 访问 Oozie 作业中在命令行输入的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20913120/

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