[Spark] 1. Spark?

2024. 11. 28. 20:51·데이터/Spark

Spark?

  • 대규모 데이터 처리와 분석을 위해 개발된 오픈 소스 분산 데이터 처리 프레임워크
  • Hadoop을 잇는 2세대 빅데이터 기술로 YARN 등을 분산 환경으로 사용

Spark 주요 특징

  • 빠른 데이터 처리
    • Spark는 데이터를 메모리에 유지하며 처리하여 디스크 I/O 작업 감소
    • 반복적인 작업에 뛰어난 성능
  • 다양한 데이터 소스 지원
    • HDFS(Hadoop Distributed File System)
    • Amazon S3, Azure Storage
    • NoSQL DB(Cassandra, HBase 등)
    • SQL DB와 통합 가능
  • 다중 언어 지원
    • Python(PySpark), Java, Scala, R, SQL 등 다양한 프로그래밍 언어로 작업 가능
  • 확장성
    • 수백 ~ 수천 대의 클러스터 노드를 확장하여 대규모 데이터를 병렬로 처리
  • 다양한 라이브러리
    • Spark SQL : 구조화된 데이터 분석
    • Spark Streaming : 실시간 데이터 스트리밍 처리
    • Spark ML(MLlib) : 머신 러닝
    • Spark GraphX : 그래프 데이터 처리
    • Spark Core : 기본 데이터 처리 엔진

Spark 핵심 컴포넌트

  • RDD(Resilient Distributed Dataset)
    • Spark의 핵심 데이터 구조로, 데이터가 변경되지 않는 데이터 컬렉션
    • 분산 처리와 결합된 데이터 복구 기능 제공
    • 기본적인 데이터 처리 작업이 이루어지는 위치
    • 로우레벨 데이터로 클러스터내의 서버에 분산된 데이터를 지칭
    • 레코드별로 존재하지만 스키마가 존재하지 않음
    • 구조화된 데이터나 비구조화된 데이터 모두 지원
  • DataFrame
    • 구조화된 데이터로 이루어진 데이터셋
    • RDD보다 사용하기 간편하고 SQL 쿼리 사용 가능
    • 데이터의 스키마 정보를 포함하여 성능 최적화
    • RDD위에 만들어지는 RDD와는 달리 필드 정보를 갖고 있음
  • Dataset
    • DataFrame과 유사하지만, 정적 타입(컴파일 시점에 타입 결정)을 지원
    • Scala, Java에서 사용 가능하지만, Python 미지원
  • Spark SQL
    • SQL-like 언어를 사용하여 구조화된 데이터 처리
    • RDBMS와 유사하게 데이터를 질의하고 분석 가능
  • Spark Streaming
    • 실시간 데이터 스트리밍 처리
    • Kafka, Flume 같은 스트리밍 데이터 소스와 연동 가능
  • MLlib
    • 머신 러닝 라이브러리로, [회귀, 분류, 클러스터링 등]의 알고리즘 지원
    • 데이터 준비 및 피처 엔지니어링 도구 지원
  • GraphX
    • 그래프 데이터와 관련된 작업 처리
    • 그래프와 RDD를 결합하여 대규모 그래프를 병렬 처리

Spark 장점

  • 속도 : 메모리 기반 처리로 빠른 작업 성능 제공
  • 유연성 : 배치 처리와 스트리밍 처리 모두 지원
  • 호환성 : 기존의 Hadoop 시스템과 통합 가능
  • 간결한 코드 : Python, Scala 등의 간결한 API를 통해 개발 생산성 향상

Spark 단점

  • 메모리 의존도 : 메모리 기반 처리 방식으로, 메모리가 부족한 환경에서 성능 저하 발생
  • 복잡한 클러스터 관리 : 대규모 클러스터에서 작업할 때 자원 관리가 어렵고 설정 복잡
  • 실시간 처리 제한 : 실시간 처리에서 일부 대기 시간이 발생할 수 있어 완전한 실시간성 보장 X
저작자표시 (새창열림)

'데이터 > Spark' 카테고리의 다른 글

[Spark] 6. Spark Execution Plan  (1) 2024.12.03
[Spark] 5. File Format  (0) 2024.12.03
[Spark] 4. Database & Table  (2) 2024.12.03
[Spark] 3. Spark SQL  (1) 2024.12.02
[Spark] 2. Spark Session  (0) 2024.12.02
'데이터/Spark' 카테고리의 다른 글
  • [Spark] 5. File Format
  • [Spark] 4. Database & Table
  • [Spark] 3. Spark SQL
  • [Spark] 2. Spark Session
김줘
김줘
김줘와 같이 데이터, 컴퓨터, IT 공부
  • 김줘
    초보개발자 김줘의 코딩일기
    김줘
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 데이터 엔지니어링 데브코스
      • 데이터
        • Airflow
        • Spark
        • Kafka
        • dbt
      • TroubleShooting
      • Docker
      • AWS
      • 크롤링, 스크래핑, 시각화
        • Selenium
        • 시각화
      • 코딩테스트
        • 프로그래머스
        • 입출력과 사칙연산
        • 정렬
      • Django
      • 자바 공부
      • 끄적끄적
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    데이터 엔지니어
    티스토리챌린지
    cloud
    데이터 엔지니어링 데브코스
    데이터 엔지니어링 데브코스 4기
    데브코스
    Airflow
    Java
    에어플로우
    오블완
    자바
    Python
    프로그래머스
    TiL
    부트캠프
    Azure
    파이썬
    프로그래밍
    초보개발자
    aws
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
김줘
[Spark] 1. Spark?
상단으로

티스토리툴바