2016-07-21 7 views
0

내 사용 사례에서 코디네이터 조치의 출력은 다음 반복에서 사용되므로 하나가 실패하면 미완료/손상된 데이터가 다음 코디네이터 조치로 공급됩니다.코디네이터 작업이 실패 할 경우 Oozie 코디네이터를 일시 중단하는 방법?

코디네이터 작업의 워크 플로 단계 중 하나가 실패하면 Oozie 코디네이터를 일시 중단 할 수 있습니까?

대신 예를 들어 출력이 다음 코디네이터 작용에 의해 덮어 쓰기되기 전에

<action name="Delete_TMP_Files"> 
    <fs> 
    <delete path='${outputPath}*'/> 
    </fs> 
    <ok to="End"/> 
    <error to="Suspend"/> 
</action> 

그래서 오류가 진단 할 수 있습니다 :

<action name="Delete_TMP_Files"> 
    <fs> 
    <delete path='${outputPath}*'/> 
    </fs> 
    <ok to="End"/> 
    <error to="Kill"/> 
</action> 

우리가 뭔가를 할 수 있습니까?

PS : fs> delete는 실제 사용 사례가 아니며 단지 예입니다.

+0

"일시 중단"동작이 무한 루프가있는 쉘 동작 인 경우 (예 : 'while [[1-eq 1]]; 1 시간 자고; done "- 그러면 워크 플로가 효과적으로 중단됩니다. 코디네이터 ' 1'옵션을 사용하면 코디네이터가 멈추게됩니다. 그러나 실행 중에 Workflow가 종료되는 경우를 파악할 수 없습니다. –

+0

당신은 또한 워크 플로우의 마지막 액션에서 Pig 나 Spark do처럼 일종의'_SUCCESS' 세마포어를 생성 할 수 있습니다. 코디네이터가'' 절을 사용하여 그 세마포어를 기다리게하십시오; 다음 워크 플로우 실행의 첫 번째 조치는이를 삭제하는 등의 작업을 수행합니다. 하지만이 "데이터 셋"조항은 복잡해 보입니다.이 게시물은 https://github.com/yahoo/oozie/wiki/Oozie-Coord-Use-Cases –

답변

1

워크 플로 실패 (코디네이터 작업에서)를 기반으로 코디네이터를 일시 중단 할 수 없습니다.

워크 플로 출력에 특정 패턴이있는 경우 워크 플로 출력을 사용하여 워크 플로 시작 부분에서이를 확인할 수 있습니다.

그렇지 않으면 성공할 때마다 워크 플로의 마지막 작업으로 파일을 항상 touch 수 있으며 실패 할 경우 삭제할 수 있습니다 (같은 파일 일 경우 날짜 기반이 아님). 워크 플로의 첫 번째 체크와 동일한 파일을 사용하고 그에 따라 진행하십시오. 처음에는 파일을 수동으로 만들어야 할 수도 있습니다.

실패한 경우 이메일 작업을 사용하여 알림을받을 수 있습니다.

이것은 단지 해결할 수 있습니다.

+1

내 문제를 해결할 것이라고 생각합니다. 감사. – slhsen

관련 문제