workflow 5

예제로 알아보는 Oozie Coordinator - 2

예제로 알아보는 Oozie Coordinator - 2 이번 포스트에서는 예제를 통해서 data availability 기반의 스케줄링이 가능한 우지 코디네이터 사용법에 대해 알아보겠습니다. time interval 기반의 우지 코디네이터의 사용법이 궁금하신분들은 이전 포스트를 참고하시기 바랍니다. Oozie를 통하여 workflow를 동작시킬 때의 조건으로 특정 데이터 셋의 준비가 되는 경우에 워크플로우가 실행되도록 하고 싶은 경우가 있습니다. 이때 사용할 수 있는 방법이 바로 data availability 혹은 data trigger 기반의 코디네이터입니다. 동작 원리는 간단합니다. 코디네이터에서 frequency 마다 지정된 위치의 데이터 셋이 존재하는지 확인합니다. 확인 후 데이터가 없으면 지정..

예제로 알아보는 Oozie Coordinator - 1

예제로 알아보는 Oozie Coordinator - 1 이전 포스트에서 우리는 다양한 workflow 패턴에 대해 알아보았습니다. workflow는 여러 액션들을 정의하고 액션들에 실행 관계를 포함해서 실행할 수 있습니다. 그러나 우리는 workflow가 특정 시간에 주기적으로 혹은 데이터가 존재하면 실행하길 원합니다. 이러한 요구사항을 수용해서 Oozie에서는 workflow를 스케줄할 수 있는 Coordinator 기능을 제공합니다. 이러한 스케줄링 기능을 통해 강력한 Orchestration 기능을 제공합니다. Oozie는 기본적으로 time interval 기반의 스케줄링과 data availability 기반의 스케줄링을 제공합니다. 또한 외부 이벤트에 의해서도 실행될 수 있습니다.Oozie에서..

Oozie classpath 정의하기

Oozie classpath 사용법 oozie 액션은 일반적으로 우지가 실행하는 작은 자바 어플리케이션들입니다. 그러면 액션을 실행할 때 액션에서 의존성이 있는 클래스들을 classpath를 통해 이용가능한 상태여야 합니다. 우지에서는 sharelib이라는 액션들이 사용하는 라이브러리의 공유 위치를 정의할 수 있습니다. 이를 통해 액션의 디펜던시를 관리를 할 수 있습니다. 또한 다양한 방법으로 라이브러리를 classpath에 추가할 수 있습니다. sharelib directory 사용하기 sharelib를 사용하기 위해서는 oozie.use.system.libpath=true로 설정해주면 사용할 수 있습니다. 그리고 sharelib directory는 다음 oozie-setup 명령어를 통해 생성해줄 수..

Oozie workflow 파라미터

Oozie Parameterization of Workflows Oozie에서 workflow 또는 coordinator에서 파라미터를 변수로 설정한 뒤, 워크플로우나 코디네이터를 실행할 때 이 파라미터를 직접 사용할 수 있습니다. 즉, workflow.xml 파일이나 coordinator.xml 파일을 편집하지 않고서도 값을 변경하여 실행할 수 있으며, 다시 배포하지 않아도 파라미터를 통해 다른 형태의 워크플로우나 코디네이터를 실행할 수 있는 것이죠. 그러면 파라미터를 설정하는 방법에 대해 알아보도록 하겠습니다. Parameter 설정 방법 config-defaults.xml에 설정하기 config-defaults.xml 파일을 생성하여 속성 값(property values)를 설정하여 파라미터를 설정..

Oozie workflow pattern - 3

해당 포스트는 이전한 블로그에서도 확인할 수 있습니다.Oozie workflow pattern - 3 이전 포스트에는 Oozie의 워크플로우 패턴중 하나인 fork-and-join 패턴에 관해서 알아보았습니다. 이번 시간에는 워크플로우 내에 액션의 결과에 조건을 주어 다음 액션을 어디로 수행할 것인지 결정할 수 있는 capture-and-decide 패턴에 대해 알아보도록 하겠습니다. capture-and-decide pattern capture-and-decide 패턴이라고 하니까 약간 어려운 느낌이 있지만 실제로는 간단한 패턴이죠. 앞서 수행된 액션에서 저장된 결과를 아웃풋으로 전달해주고 다음 액션에서는 해당 아웃풋을 받아서 어떠한 액션을 수행할 것인지 결정하게 되는 것이죠. 즉 간단한 제어문이라고 ..

반응형