Cute Hello Kitty 13 [Alpha Project-스터디] Hadoop, HDFS, Hive, Presto

스터디/Project

[Alpha Project-스터디] Hadoop, HDFS, Hive, Presto

검은콩맛두유 2025. 11. 28. 14:30

Cloud data platform layered architecture

 

빅데이터플랫폼 아키텍쳐에서 우리가 사용할 부분에 대한 스터디를 진행하였다.

단계 설명 Hadoop 관련 구성 요소
1번 Ingestion: 데이터 수집 N/A (외부 툴 필요)
2번 Slow Storage: 데이터 저장 (데이터 레이크 역할) HDFS
3번 Batch Processing and Analytics: 배치 처리 및 분석 MapReduce, YARN
5번 Data Warehouse: 분석 결과 저장 및 관리 Hive
Data Consumers Data 소비자: BI 도구, 쿼리 엔진 등 Presto

 

1.1. Ingestion (1번)

  • Hadoop에서 해당하는 구성 요소:
    • Hadoop 자체에는 Ingestion 도구가 포함되어 있지 않으므로, 외부 도구를 사용해야 함.
    • 예시 도구: Apache Kafka, Apache Flume, Sqoop.
  • 설명:
    • 외부 소스(스트리밍 데이터, 배치 데이터 등)에서 데이터를 수집하여 HDFS로 저장하는 단계.
    • 예를 들어, 웹 로그 데이터를 Kafka로 수집하고 이를 HDFS로 전달할 수 있다.
    • 우리는 기업에서 전달받은 데이터를 사용하였으므로, 외부 도구는 사용하지 않았다.

1.2. Slow Storage (2번)

  • Hadoop에서 해당하는 구성 요소:
    • HDFS (Hadoop Distributed File System).
  • 설명:
    • HDFS는 데이터 레이크(Data Lake)로 작동하며, 대규모 데이터를 분산 저장하고 관리.
    • 데이터는 여러 노드에 분산 저장되어 내결함성과 확장성을 보장.
    • HDFS는 정형, 비정형 데이터를 모두 저장할 수 있으며, Hive와 같은 도구로 분석할 준비를 한다.

1.3. Batch Processing and Analytics (3번)

  • Hadoop에서 해당하는 구성 요소:
    • MapReduce와 YARN.
  • 설명:
    • HDFS에 저장된 데이터를 배치 처리하여 대규모 분석 작업을 수행.
    • MapReduce:
      • 데이터를 분산 처리하기 위한 Hadoop의 기본 프레임워크.
      • 데이터를 Mapper에서 처리하고 Reducer에서 집계.
    • YARN:
      • 자원 관리 및 작업 스케줄링을 담당.
      • 여러 작업(MapReduce, Hive 쿼리 등)을 효율적으로 실행하도록 지원.

1.4. Data Warehouse (5번)

  • Hadoop에서 해당하는 구성 요소:
    • Hive.
  • 설명:
    • Hive는 HDFS에 저장된 데이터를 SQL 기반으로 처리할 수 있는 데이터 웨어하우스 역할을 수행.
    • HDFS의 데이터를 쿼리 가능한 테이블로 정의하고, 분석에 사용할 수 있도록 관리.
    • 데이터를 구조화하여 Presto나 BI 도구에서 활용할 수 있는 형태로 제공한다.

1.5. Data Consumers

  • Hadoop에서 해당하는 구성 요소:
    • Presto와 외부 BI 도구(Tableau, Power BI 등).
  • 설명:
    • 데이터 소비자는 Presto를 통해 Hive 테이블에 접근하고, 데이터를 빠르게 분석 및 시각화.
    • Presto는 BI 도구와 쉽게 통합 가능하며, 실시간 분석 성능을 제공한다.

2. Hive에 대한 설명

Hive의 주요 역할

  1. 데이터 웨어하우스:
    • HDFS에 저장된 데이터를 SQL 기반으로 처리.
    • 데이터 레이크에서 데이터를 구조화하여 쉽게 쿼리 가능하게 변환.
  2. SQL 기반의 처리:
    • HiveQL(Hive Query Language)은 SQL과 유사하며, 사용자는 복잡한 MapReduce 코드를 작성하지 않아도 SQL을 통해 데이터를 처리.
  3. 대규모 배치 처리:
    • Hive는 대규모 데이터 분석에 적합하며, 주로 배치 작업에 사용.
  4. ETL 작업:
    • 데이터를 추출(Extract), 변환(Transform), 로드(Load)하는 데 사용.

Hive의 특징

  • 확장성: 대규모 데이터를 처리할 수 있도록 설계.
  • 내결함성: HDFS의 내결함성을 상속받아 안정적인 데이터 처리.
  • 연동성: Presto, Spark와 같은 분석 도구와 쉽게 통합 가능.

3. Presto에 대한 설명

Presto의 주요 역할

  1. 실시간 데이터 쿼리:
    • Presto는 빠르고 실시간으로 데이터를 쿼리할 수 있는 분산 SQL 엔진.
    • 대량의 데이터를 처리하면서도 낮은 지연 시간 제공.
  2. 다양한 데이터 소스 통합:
    • Hive, HDFS, MySQL, Cassandra와 같은 다양한 데이터 소스에 연결 가능.
    • 데이터를 이동하지 않고, 저장소에 직접 쿼리.
  3. BI 도구와의 통합:
    • Tableau, Power BI 같은 BI 도구와 쉽게 연동 가능.

Presto의 특징

  • 고성능: 배치 처리에 적합한 Hive와 달리, Presto는 실시간 대화형 쿼리에 최적화.
  • 확장성: 클러스터 규모에 따라 성능이 향상.
  • 분산 아키텍처: 여러 워커 노드에서 병렬 처리를 수행하여 빠른 결과 제공.

Presto와 Hive의 차이점

특징 Hive Presto

처리 방식 배치 처리 실시간 쿼리
속도 상대적으로 느림 (MapReduce 기반) 빠름 (메모리 기반 처리)
용도 대규모 배치 처리 대화형 분석, 실시간 쿼리
데이터 이동 데이터 처리 후 저장 필요 데이터 이동 없이 쿼리 수행