Bigdata Engineer & Analyst Story

A Hugo theme for creative and technical writing

Oozie

Oozie개요

  • 여러 하둡 작업을 실행하고 관리하는 워크플로우 스케줄러 시스템
  • 데이터 수집부터 분석에 이르는 데이터 파이프라인을 구성 시 워크플로우 정의 및 개별 하둡 작업의 순차적 실행 및 관리
  • 여러 유형의 하둡 작업 지원
    • 맵리듀스, 피그, 하이브, 스파크, 스쿱, 자바, 쉘스크립트
  • 워크플로우 작업은 여러 액션의 DAG(Directed Acyclic Graph)로 표현됨

우지 작업 유형

워크플로우(Workflow)

  • 이전 작업의 출력이 다음 작업의 입력으로 이어짐
  • 결과 기반 제어 기능과 제어 종속성을 제공하는 하둡 작업 시퀀스
    • 제어 종속성: 선행 작업이 완료되기 전까지 다음 작업이 실행될 수 없음

코디네이터(Coordinator)

  • 예약된 워크플로우 작업
  • 다양한 시간 간격으로 작업을 반복 실행할 수 있음

번들(Bundle)

  • 여러 코디네이터 작업을 일괄 실행할 수 있는 한 단계 높은 추상화 객체

우지 워크플로우 노드 유형

  • 시작노드, 종료노드, 실패노드, 액션노드, 포크/조인노드, 제어플로우노드

액션노드

  • 실제로 처리되는 태스크를 정의
  • 액션을 실행하는 원격 시스템의 액션 실행을 완료한 후 그 사실을 우지에게 알리면 우지는 다음 노드를 실행

포크/조인노드

  • 워크플로우에서 태스크를 병렬로 실행시킴
  • 포크노드: 동시에 작업 두 개 이상을 실행하게 워크플로우를 분기함
  • 조인노드: 분기된 모든 포크 태스크가 완료될 때까지 기다리는 랑데부 포인트를 지정함

제어플로우노드

  • 조건문 노드
  • Switch Case문과 유사한 구조
  • JSP EL(Java Server Page Expression Language)형시 사용

WordCount예시
alt text

OozieWorkflow예시
alt text