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 쿼리를 실행하는 방법은 다음과 같습니다.
- 좌측 메뉴 바에서 > Hive(Hive UI) 를 클릭하여 편집기를 실행해 주십시오.
- 편집창에서 쿼리를 실행할 데이터베이스를 목록에서 선택해 주십시오.
- 쿼리 Editor 창에 쿼리를 입력한 후 [실행] 버튼을 클릭해 주십시오.
- [결과] 탭에서는 실행한 쿼리의 결과를 볼 수 있습니다.
- [쿼리 기록] 탭에서 실행했던 쿼리 목록을 확인할 수 있습니다.
브라우저 조회
상단 메뉴 바에서 좌측의 메뉴 아이콘을 클릭한 후 브라우저 영역에서 원하는 브라우저를 클릭해 주십시오.
- 파일 브라우저
- HDFS 파일 조회
- hdfs의 기본 디렉터리 주소: hdfs://user/계정명
- 계정명 앞이나 root의 슬래시를 클릭하여 이동 가능
- [새로 만들기]: 새로운 파일이나 디렉터리 생성
- [업로드]: 현재 디렉터리에 파일 업로드
- S3 브라우저
-
- 사용자의 API Access Key로 인증할 수 있는 모든 버킷을 조회
- S3의 기본 디렉터리 주소: s3a://버킷이름
- root의 슬래시를 클릭하여 이동 가능
- [새로 만들기]: 새로운 파일이나 디렉터리를 생성
- [업로드]: 현재 디렉터리에 파일 업로드
출처: