Создание выходного файла по дате в oozie - PullRequest
1 голос
/ 25 февраля 2012

Я использую oozie для запуска моей работы по уменьшению карты.Я хочу создать выходной файл в соответствии с датой.Но он принимает дату в виде строки и заканчивает печать вместо значения даты в качестве значения:

   /user/skataria/geooutput/$(date +"%m%d%Y%H%M%S")

Вот файл свойств oozie:

nameNode=hdfs://localhost:8020
jobTracker=localhost:8021
date=(date +"%m%d%Y%H%M%S")
oozie.wf.application.path=${nameNode}/services/advert/sid
inputDir=${nameNode}/user/${user.name}/geoinput/testgeo
outputDir=${nameNode}/user/${user.name}/geooutput/${date}

Как-то не могуиметь тег oozie, потому что моя репутация меньше 1500

Ответы [ 2 ]

3 голосов
/ 21 марта 2012

Похоже, вы пытаетесь использовать команду оболочки linux (date +"%m%d%Y%H%M%S") в файле свойств Java - это не поможет.

Обходной прием, предполагая, что это является частью заданного вручную задания Workflow (в отличие от задания Coordinator), состоит в предоставлении свойства date из командной строки с использованием параметра -D key = value и обратных ссылок оболочки Linux на разрешить вывод команды inline

oozie job -run -config job.properties -D date=`date +"%m%d%Y%H%M%S"`

Вам нужно убедиться, что ваша версия Oozie поддерживает опцию -D ключ = значение

0 голосов
/ 21 марта 2013

Да, я согласен, что опция оболочки работает.Но это не решает мой случай использования.Я хочу ежедневно выполнять свою работу по уменьшению карты и планировать это через Хюэ.Выходной каталог должен быть параметризован как свойство задания для Oozie.

Кстати, я обнаружил, что Oozie имеет функции языка выражений ,

К сожалению, функция timestamp() возвращает текущую дату и время UTC в формате W3C вплоть до секунды.(YYYY-MM-DDThh:mm:ss.sZ).то есть: 1997-07-16T19:20:30.45Z и полностью непригоден для создания имени подкаталога в HDFS

Так что на данный момент,

У меня есть обходной путь.Я использую Workflow EL Function wf:id() In workflow.xml

<property>
  <name>mapreduce.output.fileoutputformat.outputdir</name>
  <value>/user/sasubramanian/impressions/output/outpdir/${yyyy_mm_dd}/${wf:id()}</value>
</property>

Это создает выходной каталог с подкаталогом как,

/user/foouser/subdir1/output/outpdir/0000006-130321100837625-oozie-oozi-W

ПРИМЕЧАНИЕ. Вы должны указать это в рабочем процессе.xml.Это не будет работать, если вы указали это в job.properties

...