Действие Oozie Hive продолжает давать сбой из-за назначения параметров?

Я пытаюсь протестировать запуск простого скрипта Hive с помощью Oozie, но постоянно получаю сообщение об ошибке, смысл которого не могу понять.

Каждый раз, когда я отправляю задание, я получаю сообщение об ошибке, в котором говорится: «Задание не выполнено, сообщение об ошибке [Выражение параметра должно содержать назначение: jobRequest]». Однако я определил этот параметр и присвоил ему значение при первоначальной отправке конфигурации.

Рассматриваемый параметр предназначен для имени внешней таблицы куста, которую я пытаюсь создать. В рабочем процессе Oozie я определяю параметр имени таблицы, который передается сценарию Hive, здесь:

<param>${hiveTableName}</param>

Затем я создаю job.xml, который отправляю в oozie, где этому параметру присваивается следующее значение:

<property>
    <name>hiveTableName</name>
    <value>jobRequest</value>
</property>

Кто-нибудь еще сталкивался с такой проблемой или знает, что может быть причиной? Похоже, что параметр правильно определен и назначен, но задание продолжает давать сбой с указанным выше сообщением об ошибке. Если это поможет, я использую пространство имен xml:

<hive xmlns="uri:oozie:hive-action:0.2">

person user3103493    schedule 17.11.2017    source источник


Ответы (1)


Я получаю сообщение об ошибке, в котором говорится: «Задание не выполнено, сообщение об ошибке [Выражение параметра должно содержать назначение: jobRequest]»

Он жалуется, что в теге param отсутствует оператор присваивания. Дополнительные сведения см. в документации https://oozie.apache.org/docs/3.3.1/DG_HiveActionExtension.html

Первое решение с использованием тега свойства Используйте, как показано ниже.

<property>
    <name>hiveTableName</name>
    <value>jobRequest</value>
</property>

Добавьте параметр следующим образом:

 <param>hiveTableName=${hiveTableName}</param>

Второе решение через job.properties: вы хотите передать параметр с тегом <param>, определить переменную в своем job.properties, а затем передать с тегом <param>.

например, в job.properties добавить,

hiveTableName=jobRequest

затем поместите <param>hiveTableName=${hiveTableName}</param> в действие куста рабочего процесса oozie

person Amit Kumar    schedule 18.11.2017
comment
Спасибо! В этом была проблема, не могу поверить, что я пропустил запись для добавления параметров. - person user3103493; 21.11.2017