🗂 하둡 에코시스템(Hadoop Ecosystem)란?
**하둡 에코시스템(Hadoop Ecosystem)**은 Hadoop을 중심으로 다양한 빅데이터 저장, 처리, 분석을 지원하는 도구와 프레임워크들의 모음이에요.
하둡은 단순히 HDFS와 MapReduce만으로 구성되는 게 아니라, 여러 도구들이 서로 연동되어 빅데이터 수집, 저장, 처리, 분석, 시각화까지 전체 파이프라인을 구성해요.
📌 하둡 에코시스템 주요 구성요소
📊 1. 저장(Storage): HDFS
- HDFS(Hadoop Distributed File System):
대규모 데이터를 여러 노드에 분산 저장하는 파일 시스템.- 데이터를 128MB 블록 단위로 나눠 저장
- **복제(기본 3복제)**로 장애에도 데이터 보장
⚙️ 2. 리소스 관리(Resource Management): YARN
- YARN(Yet Another Resource Negotiator):
하둡 클러스터에서 리소스(CPU, 메모리) 관리와 작업 스케줄링 담당- ResourceManager: 전체 클러스터 리소스 관리
- NodeManager: 각 노드의 리소스 및 작업 상태 모니터링
🛠️ 3. 데이터 처리(Data Processing): MapReduce, Spark, Tez
- MapReduce: 하둡의 기본 데이터 처리 엔진 (병렬 분산 처리)
- Map → Shuffle → Reduce 단계를 통해 대규모 데이터 처리
- Spark: 빠른 데이터 처리를 위한 인메모리(In-Memory) 기반 엔진
- SQL, 스트림 처리, 머신러닝 등 다양한 라이브러리 제공
- Tez: MapReduce보다 더 빠르고 유연한 DAG(Directed Acyclic Graph) 기반 처리 엔진
💾 4. 데이터베이스 및 저장소(Database & Storage): HBase, Hive, Kudu
- HBase:
- HDFS 위에 구축된 NoSQL 데이터베이스 (Key-Value 저장)
- 실시간 데이터 읽기/쓰기에 강함
- Hive:
- SQL로 HDFS에 저장된 데이터를 조회할 수 있는 데이터 웨어하우스
- SELECT, JOIN 같은 쿼리 작성 가능
- Kudu:
- 실시간 분석을 위한 컬럼 기반(Columnar) 저장소
- Spark와 결합해 빠른 실시간 분석에 사용됨
🛎️ 5. 데이터 수집 및 전송(Data Ingestion): Sqoop, Flume, Kafka
- Sqoop:
- RDBMS(MySQL, Oracle 등) ↔ HDFS 간 대량 데이터 전송
- sqoop import 및 sqoop export 명령어 사용
- Flume:
- 로그 및 이벤트 데이터를 실시간으로 수집해 HDFS/HBase에 저장
- 예) 웹 서버 로그 수집
- Kafka:
- 대용량 데이터 스트림을 게시/구독(Pub-Sub) 형태로 전송
- Spark Streaming, Flink와 연동해 실시간 데이터 처리
🗂️ 6. 워크플로우 및 스케줄링(Workflow & Scheduling): Oozie, Airflow
- Oozie:
- **하둡 작업(MapReduce, Hive, Pig, Spark 등)**의 워크플로우 및 스케줄링 관리
- ex) Oozie를 통해 HBase 데이터 적재 및 워크플로우 모니터링 수행
- Airflow:
- 파이프라인(DAG) 기반 워크플로우 관리
- 최근에는 Airflow가 Oozie를 대체하는 경우가 많음
💡 7. 데이터 검색 및 시각화(Search & Visualization): Solr, Zeppelin, Superset
- Solr:
- HDFS/HBase에 저장된 데이터를 색인(indexing) 및 검색(search)
- 로그 분석 및 대시보드에 활용
- Zeppelin:
- 데이터 분석 및 시각화를 위한 노트북 인터페이스
- Spark, Hive 쿼리 및 시각화 가능
- Superset:
- SQL 기반 대시보드 도구
- Hive, Presto, Druid 등 다양한 데이터 소스와 연동
🤖 8. 머신러닝 및 분석(Machine Learning & Analytics): Mahout, Spark MLlib, Flink
- Mahout:
- 하둡 기반의 분산 머신러닝 라이브러리
- 추천 시스템, 클러스터링, 분류 등에 사용
- Spark MLlib:
- Spark 기반의 머신러닝 라이브러리
- 인메모리 기반으로 빠른 머신러닝 모델 학습 가능
- Flink:
- 실시간 데이터 처리 및 스트림 분석을 위한 엔진
- Kafka와 연동해 실시간 분석에 최적
🛑 하둡 에코시스템 구성도 예제
+----------------------+
| Client |
+----------------------+
|
v
+--------------------- YARN -----------------------+
| +--------------------------------------------+ |
| | Resource Manager | |
| +--------------------------------------------+ |
| | Node Manager | Node Manager | |
| | ... | ... | |
+--------------------------------------------------+
Storage Processing Coordination
+-----------+ +---------------------+ +------------------+
| HDFS | | MapReduce/Spark | | Zookeeper |
| HBase | | Tez | | Oozie |
| Hive | | Flink | | Airflow |
| Kudu | | | | |
+-----------+ +---------------------+ +------------------+
Ingestion Search/Query Visualization
+----------+ +-----------------+ +------------------+
| Sqoop | | Solr | | Zeppelin |
| Flume | | Presto | | Superset |
| Kafka | | Impala | | |
+----------+ +-----------------+ +------------------+
반응형