Вопрос

Я использую 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.

Это было полезно?

Решение

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

Одна работа вокруг, предполагая, что это часть вручную задача рабочего процесса (в отличие от задания координатора) состоит в том, чтобы предоставить свойство даты из командной строки с использованием параметра Key= Value, а также COOLL COOLLРазрешите выходной сигнал командной встроенной

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

Вам нужно будет убедиться, что ваша версия OOZIE поддерживает Value Value

Другие советы

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

Кстати, я это нахожу У Oozie есть функции языка выражений,

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

Итак, на данный момент,

У меня есть обходной путь.Я использую функцию 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top