BI/ETL

Oozie, HUE, Airflow의 차이점

조재구리 2024. 12. 11. 15:19

 

목차

     

    Oozie, Airflow, 그리고 Hue는 모두 데이터 워크플로우를 관리하거나 지원하는 도구이지만, 목적과 사용 방식에서 차이가 있습니다.

     

    아래는 쉽게 이해할 수 있도록 각 도구의 특징과 차이점을 설명해보겠습니다


    1. Oozie

    • 주요 역할: 빅데이터 워크플로우 관리
    • 사용 목적: Hadoop 생태계에서 배치 작업(예: Hive, MapReduce, Sqoop 작업 등)을 예약하고 실행
    • 특징:
      • Hadoop 환경과 긴밀히 통합됨.
      • XML 파일로 워크플로우 정의 (사용자 친화적이지 않을 수 있음).
      • 특정 시간 또는 조건(예: 파일 생성)에 따라 워크플로우를 트리거.
      • 주로 Hadoop 기반 작업을 관리하는 데 사용됨.

     

     

    2. Airflow

    • 주요 역할: 워크플로우 오케스트레이션
    • 사용 목적: 다양한 시스템과의 연동을 통해 데이터 파이프라인 생성 및 실행
    • 특징:
      • Python으로 워크플로우 정의 (개발자 친화적).
      • DAG(Directed Acyclic Graph)로 작업 간의 의존성을 관리.
      • 작업 상태를 실시간으로 모니터링하고 재실행 가능.
      • Hadoop뿐만 아니라 클라우드, 데이터베이스, API 호출 등 다양한 환경에서 유연하게 사용.

     

    3. Hue

    • 주요 역할: 데이터 분석과 Hadoop 작업 관리 인터페이스
    • 사용 목적: Hadoop 작업 및 데이터 탐색을 위한 사용자 인터페이스 제공
    • 특징:
      • 웹 기반 GUI로 Hadoop 생태계를 쉽게 탐색하고 관리.
      • Hive, Impala, Sqoop 등과 통합되어 SQL 쿼리 실행, 작업 모니터링 가능.
      • 데이터 분석 및 결과 시각화를 직관적으로 지원.

     

    차이점 요약

    특징
    Oozie
    Airflow
    Hue
    주요 역할
    Hadoop 워크플로우 관리
    데이터 파이프라인 오케스트레이션
    Hadoop 환경 GUI 제공
    사용 목적
    배치 작업 예약/관리
    작업 간 의존성 관리 및 실행
    SQL 실행, 데이터 탐색
    사용자 인터페이스
    XML 기반 정의
    Python 코드 기반
    웹 기반 GUI
    확장성
    Hadoop 중심
    다양한 환경 지원 (Hadoop, 클라우드 등)
    Hadoop 생태계 내 기능 지원

     


     

    Oozie, Airflow, Hue의 장, 단점

     

    1. Oozie

    장점

    • Hadoop과의 강한 통합성:
      • Hive, Pig, Sqoop, MapReduce 등 Hadoop 생태계 도구와 기본적으로 통합.
      • Hadoop 클러스터 내부에서 안정적으로 동작.
    • 조건 기반 트리거:
      • 파일이 생성되거나 시간 기반으로 워크플로우를 트리거할 수 있음.
    • 확장성:
      • 대규모 Hadoop 작업에서도 성능이 안정적임.
    • 재시작 가능:
      • 실패한 작업만 다시 실행하는 재시작 기능 제공.

    단점

    • 사용자 친화성 부족:
      • XML 기반 설정 파일 작성이 복잡하고 가독성이 낮음.
      • 에러 디버깅이 어려움.
    • 제한된 범용성:
      • Hadoop 중심으로 설계되어 다른 환경(예: 클라우드, API 등)에서는 유연성이 떨어짐.
    • 실시간 모니터링 부족:
      • 작업 실행 중 상태를 직관적으로 확인하기 어려움.
     

     

    2. Airflow

    장점

    • Python 기반 정의:
      • Python 코드로 워크플로우(DAG)를 정의하므로 가독성이 높고 개발자 친화적.
      • 복잡한 로직 구현 가능.
    • 다양한 환경 지원:
      • Hadoop뿐만 아니라 클라우드(AWS, GCP, Azure), 데이터베이스, API 등 다양한 시스템과 연동 가능.
    • 실시간 모니터링:
      • 작업 상태를 직관적으로 확인 가능하며, 실패한 작업만 재실행 가능.
    • 유연한 확장성:
      • 플러그인을 통해 다양한 기능 추가 가능.
      • 커뮤니티가 활발하고 지속적인 업데이트가 이루어짐.

    단점

    • Hadoop 중심 작업에 비효율적:
      • Hadoop 워크플로우를 처리하는 데는 Oozie만큼 최적화되어 있지 않음.
    • 학습 곡선:
      • Python 및 DAG 구조를 이해하는 데 시간이 필요.
    • 자원 소모:
      • UI와 작업 상태를 유지하기 위해 상대적으로 많은 리소스를 사용.
     

     

    3. Hue

    장점

    • 사용자 친화적인 인터페이스:
      • SQL 쿼리 실행, 데이터 탐색, 워크플로우 관리를 웹 인터페이스로 쉽게 수행 가능.
      • 비개발자도 접근하기 쉬움.
    • Hadoop 생태계 통합:
      • Hive, Impala, Sqoop, HDFS 등과 원활하게 통합되어 작업 편의성 제공.
    • 데이터 시각화:
      • 간단한 그래프나 데이터 결과를 바로 확인 가능.

    단점

    • 한정된 역할:
      • 워크플로우 오케스트레이션이나 복잡한 데이터 파이프라인 작업에는 적합하지 않음.
    • 확장성 부족:
      • Hadoop 중심으로 설계되어 다른 환경에서는 제한적.
    • 복잡한 워크플로우 관리 제한:
      • Oozie나 Airflow와 비교해 워크플로우 간의 의존성 관리 기능이 부족.
     

    장단점 차이점 요약

     
    도구
    장점
    단점
    Oozie
    - Hadoop에 최적화
    - 조건 기반 트리거
    - 재시작 가능
    - 대규모 작업 안정적 처리
    - XML 설정의 복잡성
    - Hadoop 외 환경 지원 부족
    - 실시간 모니터링 어려움
    Airflow
    - Python으로 유연한 워크플로우 정의
    - 다양한 시스템 지원- 실시간 모니터링- 확장성
    - Hadoop 작업에 최적화되지 않음
    - 학습 곡선 존재
    - 높은 리소스 사용
    Hue
    - 간단하고 직관적인 UI
    - SQL 실행 및 데이터 탐색 쉬움- 데이터 시각화 지원
    - 복잡한 워크플로우 관리 어려움
    - Hadoop 외 환경 제한적
    - 고급 오케스트레이션 부족

    나는 HUE를 사용하고 있어서, 간단하게 설명해보자면 ...

     

    Hue 구성 요소

    •  브라우저
      • 문서: Hue에서 저장한 워크플로(Workflow), 쿼리, 스크립트 파일을 볼 수 있음
      • 파일: HDFS에 저장된 파일을 볼 수 있음
      • S3: Object Storage 버킷에 저장된 파일을 볼 수 있음
      • 테이블: Hive warehouse에 저장된 테이블을 볼 수 있음
      • Job: 실행한 Oozie Job의 상태, 로그를 볼 수 있음
    • 편집기
      • Hive: Hive 쿼리를 실행할 수 있음
      • Scala, PySpark: spark-shell처럼 인터렉티브한 구문을 실행할 수 있음
      • Spark Submit Jar, Spark: 각각 jar, py 파일을 Spark Job으로 제출할 수 있음
      • Java: Oozie 워크플로를 통해 jar를 실행할 수 있음
      • Distcp: Oozie 워크플로를 통해 Distcp 작업을 실행할 수 있음
      • Shell: Oozie 워크플로를 통해 .sh 파일을 실행할 수 있음
      • MapReduce: MapReduce 애플리케이션을 Oozie 워크플로를 통해 실행할 수 있음
    • 스케줄러
      • Workflow: Oozie 워크플로를 생성할 수 있음
      • 예약: 생성한 워크플로를 스케줄링할 수 있음

     

    Hue 접속

    Hue는 다음 두 가지 방법으로 접속이 가능합니다.

    • 콘솔의 Web UI 목록을 통한 연결
    • 도메인을 이용한 연결

     

    Hive 쿼리 실행

    Hive 쿼리를 실행하는 방법은 다음과 같습니다.

    1. 좌측 메뉴 바에서 > Hive(Hive UI) 를 클릭하여 편집기를 실행해 주십시오.
    2. 편집창에서 쿼리를 실행할 데이터베이스를 목록에서 선택해 주십시오.
    3. 쿼리 Editor 창에 쿼리를 입력한 후 [실행] 버튼을 클릭해 주십시오.
    • [결과] 탭에서는 실행한 쿼리의 결과를 볼 수 있습니다.
    • [쿼리 기록] 탭에서 실행했던 쿼리 목록을 확인할 수 있습니다.

     

     

    브라우저 조회

    상단 메뉴 바에서 좌측의 메뉴 아이콘을 클릭한 후 브라우저 영역에서 원하는 브라우저를 클릭해 주십시오.

    • 파일 브라우저
      • HDFS 파일 조회
      • hdfs의 기본 디렉터리 주소: hdfs://user/계정명
      • 계정명 앞이나 root의 슬래시를 클릭하여 이동 가능
      • [새로 만들기]: 새로운 파일이나 디렉터리 생성
      • [업로드]: 현재 디렉터리에 파일 업로드

    • S3 브라우저
      • 사용자의 API Access Key로 인증할 수 있는 모든 버킷을 조회
      • S3의 기본 디렉터리 주소: s3a://버킷이름
      • root의 슬래시를 클릭하여 이동 가능
      • [새로 만들기]: 새로운 파일이나 디렉터리를 생성
      • [업로드]: 현재 디렉터리에 파일 업로드

     

     

    출처:

    https://guide.ncloud-docs.com/docs/hadoop-vpc-18