데이터 추출 배치 작업과 데이터 분석 파이프라인은 독립적인 여러 단계로 구성되어있으며, 각 단계마다 다른 기술이 사용될 수 있다.
이런 파이프라인 작업에 대한 오케스트레이션 및 스케줄링과 같은 복잡한 상호 의존 관계를 나타낼 방법이 필요하다.
Oozie
하둡에서 사용되는 작업 스케줄링 및 실행 프레임워크이다.
우지서버는 하둡 작업을 직접 실행하지 않고, 하둡 클러스터에 맡기는 아키텍처 덕분에 가볍다 따라서 수백 개의 액션을 동시에 쉽게 실행할 수 있다.
프로세스
- Client: XML 파일로 정의된 작업을 제출한다. 처리 과정이 플로우 차트와 비슷하다고 볼 수 있다.
- Workflow Engine: 기본 실행단위인 액션을 구성하고, 연쇄적으로 함께 실행돼야 하는 액션을 묶어 워크플로우를 구성한다.
- Scheduler: 구성된 워크플로우는 코디네이터를 통해서 스케줄링된다. 또한 관련있는 여러 코디네이터를 번들로 그룹지어 정해진 시간에 실행할 수 있다.
작업 정의와 관련된 모든 파일과 라이브러리는 반드시 HDFS에 저장한다.
(action, workflow, coordinator details, bundles 등)
Airflow
Python 코드로 워크플로우를 작성하고, 스케줄링, 모니터링하는 플랫폼이다.
워크플로우는 DAG(비순환 방향 그래프) 형태로 나타나고, DAG를 통해 실행하고 싶은 Task들의 관계와 종속성을 표현할 수 있다.
따라서 DAG를 정확히 설정해야 Task를 원하는 대로 스케줄링하고, 실행할 수 있다.
구성요소
- Scheduler: 실행해야할 Task를 스케줄링하고, Executor로 작업을 제출한다.
- Executor: Task를 Worker로 푸시하여 작업을 실행시킨다.
- Webserver: DAG 및 Task 동작을 트리거/검사/디버그할 수 있는 사용자 인터페이스 웹서버
- DAG Directory: Scheduler와 Executor가 읽는 DAG 파일의 폴더
- Metadata DB: Scheduler, Executor, Webserver의 상태를 저장하는 DB
해당 내용은 다음 책을 참고했습니다.
반응형
'Engineering 💻 > Hadoop' 카테고리의 다른 글
[Spark] Exception while deleting Spark temp dir 에러 해결 (0) | 2022.02.18 |
---|---|
[Hadoop] Spark 동작 단계 (0) | 2022.01.18 |
[Hadooop] 분석용 SQL 엔진 (feat. Hive, Impala, Presto) (0) | 2022.01.12 |
[Hadoop] 연산 프레임워크 (feat. MapReduce, Spark, Flink) (0) | 2022.01.11 |
[Hadoop] 핵심 컴포넌트 (feat. HDFS, YARN, ZooKeeper, Hive Metastore) (0) | 2022.01.11 |