[Coursera|DE] Apache Hadoop, Hive, Spark

Joo·2024년 8월 12일

Data Engineering

목록 보기
5/7
post-thumbnail

대표적인 빅데이터 처리 기술인 Apache Hadoop, Hive, Spark에 대해 알아보자.

1. Apache Hadoop

컴퓨터들의 집합인 컴퓨터 클러스터에 걸쳐 대규모 데이터셋을 분산 저장하고 처리하는 기능을 제공한다.
Hadoop의 HDFS(Hadoop Distributed File System, 하둡 파일 배포 시스템)은 빅데이터용 저장소 시스템으로 사용된다.

  • 분산 저장 및 처리 : 클러스터로 구성된 여러 컴퓨터에 걸쳐 데이터를 저장하고 처리함
    • 노드 = 단일 컴퓨터, 클러스터 = 복수 컴퓨터
  • 확장성 : 단일 노드에서 시작해 원하는 만큼 노드를 추가해 확장할 수 있음
  • 데이터 형식에 무관 : 특정 데이터 형식 요구 없이 데이터 저장 가능 (정형, 비정형 데이터 모두 가능)
  • HDFS : Hadoop의 주요 구성 요소 중 하나로, 네트워크로 연결된 여러 하드웨어에 걸쳐 데이터를 분산 저장하는 시스템
    • HDFS는 대규모 데이터를 여러 노드에 분할해 저장하고, 복제본을 만들어 데이터 손실을 방지함
    • 주로 배치 처리에 사용되며, 파일 생성 후 자주 수정되지 않는 워크로드에 적합함

(참고) Apache HBase

HBase는 HDFS 위에 구축된 NoSQL 분산 데이터베이스로, 실시간으로 데이터를 읽고 쓸 수 있도록 설계되었다.
테이블 형식으로 데이터를 저장하며, 매우 큰 테이블(수십억 행)에서 데이터를 빠르게 읽고 쓸 수 있다.
따라서 실시간 분석이나 트랜잭션 처리가 필요한 경우에 적합한 데이터베이스다.

  • 실시간 데이터 처리 : HDFS 기반으로 대규모 데이터를 실시간으로 접근하고 처리할 수 있는 기능 제공
  • 컬럼 지향 저장소 : 데이터를 컬럼 단위로 저장하며, 특정 컬럼에 대한 접근이 빠름
  • 확장성 : 수평적으로 확장가능하며, 노드를 추가해 성능과 용량을 확장할 수 있음
  • 무 스키마 데이터 모델 : 스키마가 없는 데이터 모델을 제공해, 유연하게 데이터를 저장하고 관리할 수 있음
  • HDFS와 HBase의 관계
    • HDFS는 데이터를 파일 형식으로 저장하는 반면, HBase는 데이터를 테이블 형식으로 구조화해 저장하고, 실시간으로 접근할 수 있는 기능을 제공함
    • HBase는 HDFS 위에서 동작하고, HDFS의 분산 저장 기능을 활용해 데이터를 관리함
    • HDFS가 데이터 저장소의 역할을 한다면, HBase는 그 위에서 데이터베이스로서 데이터를 관리하고 실시간으로 데이터를 처리할 수 있는 기능을 제공함


2. Apache Hive

Hadoop 위에 구축된 데이터 웨어하우스로, 대규모 데이터셋 파일을 읽고 쓰고 관리하는 오픈 소스 소프트웨어다.

  • 쿼리 및 분석 : 주로 ETL, 보고서 작성, 데이터 분석과 같은 데이터 웨어하우징 작업에 적합
  • SQL 지원
  • 상대적으로 느림 : Hadoop 기반이기 때문에 쿼리 처리에 시간이 걸리며, 빠른 응답 시간이 필요한 애플리케이션에는 적합하지 않음
  • 읽기 기반 : 주로 읽기 작업에 적합하며, 쓰기 작업이 많은 트랜잭션 처리에는 적합하지 않음


3. Apache Spark

대규모 데이터를 실시간으로 분석할 수 있도록 설계된 범용 데이터 처리 엔진이다.

  • 메모리 내 처리 : 메모리 내에서 데이터를 처리해 계산 속도가 빠르며, 메모리가 부족할 때만 디스크를 사용함
  • 다양한 프로그래밍 언어 지원 : Java, Scala, Python, R, SQL 등 주요 프로그래밍 언어에 대한 인터페이스를 제공
  • 다양한 데이터 소스 접근 : HDFS, Hive 등 다양한 데이터 소스에 접근할 수 있어 매우 유연함
  • 실시간 데이터 처리 : 스트리밍 데이터를 빠르게 처리하고, 실시간으로 복잡한 분석 수행 가능


4. 요약

기술요약
Hadoop대규모 데이터셋을 분산 저장 및 관리하는 기술
HDFSHadoop의 핵심 요소로, 빅데이터를 분산 저장하는 파일 시스템 (저장소)
HBaseHDFS 위에서 동작하는 NoSQL 분산 데이터베이스로, 데이터를 실시간으로 관리 및 처리
HiveHadoop 위에 구축된 데이터 웨어하우스로, SQL을 지원하며 대규모 데이터의 읽기에 적합
Spark대규모 데이터를 실시간으로 빠르게 분석할 수 있는 데이터 처리 엔진
profile
적당히 공부한 거 정리하는 곳

0개의 댓글