Echo system

Hadoop Ecosystem

박쿠리 2025. 2. 18. 00:15

🗂 하둡 에코시스템(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) 기반 워크플로우 관리
    • 최근에는 AirflowOozie를 대체하는 경우가 많음

💡 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     |    |                  |
+----------+        +-----------------+    +------------------+

 

반응형