无法从oozie.action.conf.xml中检索属性

时间:2015-03-10 16:56:32

标签: java hadoop action config oozie

我正在尝试访问通过oozie java action配置设置的属性,但我没有得到我想要的值,想知道我是否可以获得任何帮助?

我的工作流程

...........
<action name="ref-record-load">
 <java>
    <configuration>
    <property>
      <name>oozie.launcher.mapred.child.java.opts</name>
      <value>-Xmx4g -XX:MaxPermSize=256m</value>
    </property>
    <property>
      <name>load.type</name>
      <value>full</value>
    </property>
  </configuration>
.............

我试图通过以下方式从我的代码访问此属性

        oozieConfigFile = System.getProperty("oozie.action.conf.xml");
        final FileInputStream inputStream = new FileInputStream(oozieConfigFile);
        final Properties oozieConfigProperties = new Properties();
        oozieConfigProperties.loadFromXML(inputStream);
        loadType = oozieConfigProperties.getProperty("load.type");

但是我没有看到loadType中填充了任何值。我试图访问该物业的方式有什么不对吗?

请帮忙

1 个答案:

答案 0 :(得分:2)

xml文件在那里。但是它无法通过loadFromXML()加载。尝试使用hadoop配置类:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
... 
Configuration conf = new Configuration(false);
conf.addResource(new Path(System.getProperty("oozie.action.conf.xml")));
String loadType = conf.get("load.type")
...

它应该有用。