Oozie
Oozie개요
- 여러 하둡 작업을 실행하고 관리하는 워크플로우 스케줄러 시스템
- 데이터 수집부터 분석에 이르는 데이터 파이프라인을 구성 시 워크플로우 정의 및 개별 하둡 작업의 순차적 실행 및 관리
- 여러 유형의 하둡 작업 지원
- 맵리듀스, 피그, 하이브, 스파크, 스쿱, 자바, 쉘스크립트
- 워크플로우 작업은 여러 액션의 DAG(Directed Acyclic Graph)로 표현됨
우지 작업 유형
워크플로우(Workflow)
- 이전 작업의 출력이 다음 작업의 입력으로 이어짐
- 결과 기반 제어 기능과 제어 종속성을 제공하는 하둡 작업 시퀀스
- 제어 종속성: 선행 작업이 완료되기 전까지 다음 작업이 실행될 수 없음
코디네이터(Coordinator)
- 예약된 워크플로우 작업
- 다양한 시간 간격으로 작업을 반복 실행할 수 있음
번들(Bundle)
- 여러 코디네이터 작업을 일괄 실행할 수 있는 한 단계 높은 추상화 객체
우지 워크플로우 노드 유형
- 시작노드, 종료노드, 실패노드, 액션노드, 포크/조인노드, 제어플로우노드
액션노드
- 실제로 처리되는 태스크를 정의
- 액션을 실행하는 원격 시스템의 액션 실행을 완료한 후 그 사실을 우지에게 알리면 우지는 다음 노드를 실행
포크/조인노드
- 워크플로우에서 태스크를 병렬로 실행시킴
- 포크노드: 동시에 작업 두 개 이상을 실행하게 워크플로우를 분기함
- 조인노드: 분기된 모든 포크 태스크가 완료될 때까지 기다리는 랑데부 포인트를 지정함
제어플로우노드
- 조건문 노드
- Switch Case문과 유사한 구조
- JSP EL(Java Server Page Expression Language)형시 사용
WordCount예시
OozieWorkflow예시