2014-01-03 4 views
0

Моя проблема заключается в том, что я безуспешно нахожу свойство, введенное из командной строки в задаче Oozie. Вот как я начинаю работу 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 однако, и я нажимаю на вкладке «Работа Configuration» Я вижу

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

Пожалуйста, обратите внимание, что, когда я воспитываю конкретные действия, которые выполняются и нажмите на «Конфигурация действия» вкладка, я НЕ вижу эту конфигурацию.

Как добраться до этого свойства в программе Java под управлением Oozie?

ответ

1

Я понял, что мне не хватает. В файле workflow.xml мне необходимо было указать:

<property> 
    <name>sample.property.filename</name> 
    <value>${wf:conf("sample.property.filename")}</value> 
</property> 
Смежные вопросы