빅데이터

빅데이터 프레임워크 하둡,스파크

달보드레91 2026. 5. 8. 15:19
반응형
빅데이터 프레임워크 정리

📊 빅데이터 프레임워크 정리

1. 빅데이터 프레임워크

정의

빅데이터를 쉽고 빠르고 안전하게 수집 · 저장 · 처리 · 분석 · 시각화 하도록 하는 도구

프레임워크란?

소프트웨어의 구체적 기능들에 해당하는 부분의 설계와 구현을 재사용 가능하도록 협업화된 형태로 제공하는 소프트웨어 환경

2. 데이터 분석 프로세스

데이터 선택
데이터 수집준비
통찰 확보
해석 · 평가 · 활용

3. 텍스트 마이닝 과정

📝 텍스트 수집

  • API 활용 수집
  • 웹 스크래핑

⚙️ 텍스트 전처리

  • 형태소 분석
  • 워드 임베딩

📈 텍스트 분석

  • 문서 분류
  • 문서 생성
  • 문서 요약
  • 감성 분석
  • 토픽 모델링
  • 기계 번역
  • 네트워크 분석

🎨 텍스트 시각화

  • 워드 클라우드
  • 트리맵
  • 연관어 분석

4. 하둡(Hadoop)

JAVA 기반의 대용량 데이터를 분산 처리할 수 있는 오픈소스 프레임워크

  • 더그 커팅(Doug Cutting)과 마이크 카파렐라(Mike Cafarella)가 2006년 발표

📦 하둡의 핵심 구성 요소

HDFS

분산 파일 시스템

MapReduce

분산 데이터 처리 프로그래밍 모델

YARN

자원 관리 시스템

5. HDFS

마스터 / 슬레이브 아키텍처

🧠 NameNode

  • 전체 파일 시스템 관리
  • DataNode 관리
  • 메타데이터 관리
  • DataNode 동작 실시간 감시

💾 DataNode

  • 실제 데이터 저장
메타데이터
데이터의 생성 수단, 목적, 시각 등 파일의 내용과 맥락을 알려주는 데이터

⭐ HDFS의 특징

  • 다수의 DataNode에 대용량 데이터를 저장
  • 저가 서버를 이용하여 비용 절감
  • DataNode 추가 후 NameNode 등록으로 용량 확장 가능
  • 수평적 확장 구조로 페타바이트 이상의 데이터 관리 가능
  • 기본적으로 3개의 복사본 저장
  • 장애 발생 시 복구 용이
  • 데이터 일괄 처리에 최적화

6. MapReduce

하둡 시스템에서 분산 데이터 처리를 위한 프로그래밍 모델
원본 데이터
HDFS 저장
Mapper
Shuffling
Reducer

🧩 Mapping

  • HDFS 데이터를 가공하여 새로운 <key, value> 집합 출력
  • 같은 key를 가진 value들을 묶음

🔄 Shuffling

  • 같은 key를 가진 데이터를 같은 Reducer로 이동

⭐ MapReduce 특징

  • 복잡한 프로그램 단순화 가능
  • Mapper / Reducer 함수만 작성하면 됨
  • 데이터 대신 코드를 전송하여 전송시간 최소화
  • 실제 데이터가 있는 곳에서 연산 수행
  • 노드 간 데이터 전송 최소화
JobTracker (Master)
    └── 작업 스케줄링 담당

TaskTracker (Slave)
    └── DataNode에서 작업 실행 및 관리

7. YARN

하둡 시스템의 자원을 관리하는 역할

Resource Manager (RM)

Master에서 실행되며 클러스터 자원 할당 관리

Node Manager (NM)

Worker에서 실행되며 Task 실행 담당

Application Master (AM)

하나의 애플리케이션 관리

Container

CPU, 메모리, 디스크, 네트워크 자원을 패키징

8. 스파크(Spark)

대용량 데이터 처리를 위한 오픈소스 통합 분석 엔진
  • 2009년 UC Berkeley AMPLab에서 시작
  • Apache 프로젝트로 개발
  • 정형 · 스트리밍 · 그래프 데이터 통합 처리 가능

⚡ 하둡의 단점 보완

  • MapReduce 반복 시 디스크 입출력 증가
  • RDD 개념을 적용하여 인메모리 기반 처리
  • 속도 향상 가능

9. 스파크 통합 데이터 처리 엔진

정형 데이터 처리

실시간 데이터 스트림 처리

머신러닝 파이프라인

그래프 데이터 조작 및 계산

🔥 Spark Core

  • 분산 작업 처리 담당
  • 메모리 관리 담당
  • 결함 복구 담당
  • Scala, Python, Java, SQL, R 지원

10. 스파크의 결함 허용성

데이터 처리 중 결함 발생 시 복구 가능하도록 데이터 변환 이력을 저장 및 관리
  • RDD Lineage 그래프 형태로 연산 과정 기록

11. 스파크 클러스터 구조

Master Node

전체 클러스터 관리 및 분석 프로그램 수행

Driver

SparkContext 생성 및 Job을 Task로 변환

SparkContext

Spark Application 관리

Cluster Manager

Worker 리소스로 작업 수행 및 결과 전달

12. RDD

인메모리 기반 데이터 처리를 위한 데이터 모델
  • 디스크에서 데이터를 읽어온 후 메모리에서 연산 수행
  • 중간 결과를 디스크에 저장하지 않음
  • 메모리에 상주시켜 빠른 처리 가능
  • Transformation으로 발생한 모든 RDD는 Lineage에 기록
  • 결함 발생 시 저장된 Lineage를 통해 복구 가능

13. Transformation

기존의 RDD에서 새로운 RDD를 생성하는 함수

Narrow Transformation

하나의 노드 안에서 연산 수행

Wide Transformation

여러 노드에 분산된 데이터를 전달하며 연산 수행

14. Action과 Lazy Execution

Action이 수행되기 전까지 실제 연산을 수행하지 않음
  • Action을 만나면 실제 연산 수행
  • Lineage를 확인하여 전체 연산 최적화 가능
반응형