2012-02-24 5 views
1

Я использую oozie для запуска моей работы по уменьшению количества карт. Я хочу создать выходной файл в соответствии с датой. Но это занимает дату в виде строки и заканчивает печать вместо того, чтобы даты в качестве значения:Создание выходного файла в соответствии с датой в 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

ответ

3

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

Работает, считая, что это часть заданного вручную задания Workflow (в отличие от задания координатора), заключается в том, чтобы предоставить свойство даты из командной строки с использованием параметра -D key = value и linux shell back quotes разрешить вывод командной инлайн

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

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

+0

Обязательно попробуйте. Спасибо! – RFT

0

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

Кстати я считаю, что Oozie has Expression language Functions,

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

Так что сейчас

У меня есть обходной путь. Я использую Workflow EL Функция wf:id() В 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 

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