Я хотел бы сделать рабочий процесс oozie, где последним шагом будет «Архивировать» результаты.Рабочий процесс Oozie с действием архива
Команда в оболочке, чтобы сделать это
hadoop archive -archiveName=XXX.har -p /some/random/parent directorToArhive pathToArchiveDestination
Я попытался следующий
<workflow-app name="HARD_CODED_ARCHIVE_TEST" xmlns="uri:oozie:workflow:0.4">
<start to="archive"/>
<action name="archive">
<archive archiveName="xxx.har" src="/root/src/dir" dest="/path/to/desired/archive/location"/>
<ok to="end"/>
<error to="kill"/>
</action>
<kill name="kill">
<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>
Я получаю ошибку что-то вроде следующего:
WARNING: Exception in Runloop of thread: main with message: E0701: XML schema error, cvc-complex-type.2.4.a: Invalid content was found starting with element 'archive'. One of '{"uri:oozie:workflow:0.4":map-reduce, "uri:oozie:workflow:0.4":pig, "uri:oozie:workflow:0.4":sub-workflow, "uri:oozie:workflow:0.4":fs, "uri:oozie:workflow:0.4":java, WC[##other:"uri:oozie:workflow:0.4"]}' is expected.
Так очень ясно, что я не могу этого сделать. потому что схема рабочего процесса oozie не поддерживает действие «архива».
Я действительно не хочу запускать это через cron, поскольку я хотел бы архивировать сразу после успешного завершения рабочего процесса, как это сделать.
user1569891 - Это было очень хорошее решение. Большое спасибо! –