У меня есть задание mapreduce, которое запланировано координатором oozie и выполняется каждые 4 часа. Это задание mapreduce принимает параметр, скажем, k, значение которого задается в файле job.config. Я хотел бы знать, если я изменю значение этого параметра между двумя запусками, выберет ли он обновленное (новое) значение или будет придерживаться исходного (старого) значения?
2 ответа
Если задание находится в режиме выполнения, оно само будет придерживаться параметра Old, а если задание ожидает запланированного запуска, оно примет самое последнее значение :).
На самом деле, есть хитрый способ «динамически» получить значение параметра во время выполнения:
- вставьте фиктивное действие оболочки в начале рабочего процесса с помощью Набор опций
- в сценарии оболочки просто загрузите файл свойств из HDFS и выгрузить его в STDOUT
- опция «capture-output» сообщает Oozie, что нужно преобразовать STDOUT в карту (т. е. список ключей/значений)
- затем используйте E.L. функция для получения соответствующих значений в следующих действиях
${wf:actionData("DummyShellAction")["some.key"]}
http://oozie.apache.org/docs/4.0.0/WorkflowFunctionalSpec.html#a4.2.6_Hadoop_Jobs_EL_Function
Похожие вопросы
Новые вопросы
oozie
Oozie - это система рабочих процессов / координации для управления заданиями Hadoop Map Reduce.