Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
oozie의 action에 user_retry및 retry_interval을 지정하여 작업이 바로 종료되지 않고 일정 시간 대기하도록 할 수 있는데.. 이때 L4가 round robin형태로 처리하면 retry간격이 일정하지 않게 짧아지는 문제가 있다.
이는 action 수행 순서인 Start action->call for action->Preparing retry가 각각 다른 oozie서버에서 수행되면서 retry간격을 정확히 측정하지 못하는 문제가 있다.
특히 선행 retry에서 Start action과 call for action은 반드시 같은 서버에서 수행되고 다음 retry도 같은 oozie서버에서 수행되어야 문제 없이 정해진 시간만큼 wait시킬 수 있다 .
예를 들어 아래와 같은 ooze log상의 작업이 진행되면..
17회와 18회 사이는 지정된 시간만큼 정확하게 wait이 되지만 18회와 19회 사이는 원하는 만큼의 시간만큼 wait하지 못한다.
userRetryCount[17]
->Start action(oozie#1)
->callback for action(oozie#1)
->Preparing retry(oozie#1, callback for action서버와 같음)
userRetryCount[18]
->Start action(oozie#1)
->callback for action(oozie#2)
->Preparing retry(oozie#2, callback for action서버와 같음)
userRetryCount[19]
->Start action(oozie#1)
->callback for action(oozie#2)
->Preparing retry(oozie#2, callback for action서버와 같음)