Есть ли способ отправить по электронной почте продолжительность рабочего процесса с электронным письмом о завершении? Есть ли такая переменная, которую я могу использовать?
2 ответа
Я не думаю, что такая переменная доступна. Но при необходимости вы можете сделать это с помощью действия оболочки. Во время запуска вашего рабочего процесса выполните сценарий оболочки для времени запуска и сохраните его в переменной. Во время рабочего процесса просто закончите, прежде чем ваше действие по электронной почте будет иметь другой сценарий оболочки, который рассчитает текущее время - время начала и использует его в своем электронном письме. Но это делает ваш рабочий процесс грязным
Это замечательный недостаток Oozie. Каждый из наших рабочих процессов начинается с действия оболочки, которое вызывает простой скрипт bash для получения метки времени.
<action name="start-time">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<exec>utc-time.sh</exec>
<file>../common/utc-time.sh#utc-time.sh</file>
<capture-output/>
</shell>
<ok to="the-first-actual-action"/>
<error to="fail"/>
</action>
И это можно проверить с помощью Java EL в электронном письме, которое мы отправляем по завершении, с ошибкой, например:
<action name="email">
<email xmlns="uri:oozie:email-action:0.1">
<to>${emailsToAlert}</to>
<subject>COMPLETED: ${wf:name()}</subject>
<body>
Workflow ID: ${wf:id()}
Workflow Name: ${wf:name()}
Workflow app path: ${wf:appPath()}
Start Time: ${wf:actionData('start-time')['time']}
End Time: ${timestamp()}
</body>
</email>
<ok to="end"/>
<error to="fail"/>
</action>
Получение длительности — это еще одно упражнение, связанное с передачей времени начала и окончания сценарию bash.
Я исследовал функциональность Oozie SLA, но не нашел способ извлечения данных.
Похожие вопросы
Новые вопросы
hadoop
Hadoop - это проект с открытым исходным кодом Apache, который предоставляет программное обеспечение для надежных и масштабируемых распределенных вычислений. Ядро состоит из распределенной файловой системы (HDFS) и менеджера ресурсов (YARN). Различные другие проекты с открытым исходным кодом, такие как Apache Hive, используют Apache Hadoop в качестве слоя персистентности.