Mam mapę hadoop-redukuję zadanie działające jako krok w przepływie pracy Oozie. Jest on uruchamiany za pomocą akcji java, która implementuje org.apache.hadoop.util.Tool.Jak uzyskać bardziej szczegółowe informacje o błędzie na zabitym zleceniu w Oozie
Kiedy z jakiegoś powodu praca jest zabijana, chcę mieć możliwość wysłania wiadomości e-mail z powiadomieniem, które powinno zawierać stos, jeśli wystąpił wyjątek podczas przetwarzania.
Obecnie zrobić to w ten sposób:
<action name="sendErrorNotifications">
<email xmlns="uri:oozie:email-action:0.1">
<to>[email protected]</to>
<subject>Job execution failed ${wf:id()}</subject>
<body>Job execution failed, error message: [${wf:errorMessage(wf:lastErrorNode())}]</body>
</email>
<ok to="fail" />
<error to="fail" />
</action>
Ale otrzymuję tylko:
Job execution failed, error message: [Job failed!]
co nie jest bardzo użyteczny :) a ja muszę pójść i sprawdzić wszystkie węzły loguje się sam.
Jak mogę uzyskać bardziej szczegółowe wiadomości? Powinienem złapać wyjątki i zawinąć do jakiegoś jednego oozie-połów w narzędziu, albo po prostu użyć czegoś zamiast $ {WF: ErrorMessage ...
Dzięki
Problem polega na tym, że narzędzie nie może wychwycić wyjątku, który wystąpił w, powiedzmy, reduktorze. Wszystko, co mamy, to status pracy, więc możemy teraz, że coś poszło nie tak ... Dostarczę rozwiązanie, którego używam jako możliwą odpowiedź. – Art