BESPIN Tech Blog
  • Home
  • Tech
    • CSP

      AWS

      GCP

      NCP

      Cloud

      Migration

      LZ, Control Tower

      Backup

      Monitoring

      Container

      Infra

      OS

      Middleware

      Data

      RDB

      Big Data Platform

      Application

      CI/CD

      BESPICK 구독하기 ㅣ 1668-1280

  • Trend
  • IT
최신 리포트 다운로드 지금 바로 문의하기
BESPIN Tech Blog
  • Home
  • Tech
    • CSP

      AWS

      GCP

      NCP

      Cloud

      Migration

      LZ, Control Tower

      Backup

      Monitoring

      Container

      Infra

      OS

      Middleware

      Data

      RDB

      Big Data Platform

      Application

      CI/CD

      BESPICK 구독하기 ㅣ 1668-1280

  • Trend
  • IT
최신 리포트 다운로드 지금 바로 문의하기
BESPIN Tech Blog
BESPIN Tech Blog
  • Tech
    • CSP
      • AWS
      • GCP
      • NCP
    • Cloud
      • Migration
      • LZ, Control Tower
      • Backup
      • Monitoring
      • Container
    • Infra
      • OS
      • Middleware
    • Data
      • RDB
      • Big Data Platform
    • Application
      • CI/CD
  • Trend
  • IT
  • Contact US
Big Data Platform

Spark 1편 – Backend Service – Optimizer

by 민우 서 2025년 03월 25일
2025년 03월 25일
5

안녕하세요 오늘은 BESPIN GLOBAL Data실 한제호님이 작성해주신 ‘Spark 1편 – Backend Service – Optimizer’가 무엇인지 소개해드리도록 하겠습니다.

목차
1. Spark 작동 방식
– Catalyst Project
– Tungsten Project

  1. Spark 작동 방식
  • Spark은 Lazy evaluation 방식으로 동작한다. 많은 이유가 있겠지만 가장 큰 이유는 데이터를 변환하는 과정에서 단일 Transformation로의 튜닝보다 다수의 Tranformation을 모아서 튜닝하는 것이 훨씬 효율적이기 때문이다.
  • Spark은 쿼리(Dataframe포함)를 수행하기 위해서는 내부적으로 두 가지 엔진이 동작한다. (Spark 2.x 까지는…)
Spark은 쿼리(Dataframe포함)를 수행하기 위해서는 내부적으로 두 가지 엔진이 동작한다. (Spark 2.x 까지는…)

*Catalyst Project

  • 사용자가 작성한 코드를 실행 가능한 Plan으로 변경해주는 작업 담당한다.
사용자가 작성한 코드를 실행 가능한 Plan으로 변경해주는 작업 담당한다.

  • Logical Plan을 Physical Plan으로 변경해주는 역할을 담당한다.
Logical Plan을 Physical Plan으로 변경해주는 역할을 담당한다.

  • Plan 종류별 역할
    • Logical Plan은 작성된 코드를 기반으로 각 Tranformation 단계에 대한 추상화까지만 정의한다. 즉, 최적화가 적용되지 않고 단순히 데이터가 어떻게 변해야 하는지만 정의한다. 실제 어느 Executor에서 또는 어느 RDD에서 동작하는지는 정의하지 않는다. 보통 기본적인 code inspection 활동(컬럼이름이 맞지 않거나, 데이터타입이 맞지않는…)에서 발생하는 오류를 catch한다.
    • Physical Plan은 Local Plan을 기반으로 Cost Model 실행 전략에 따라 최적화 작업이 수행된다.(어떻게 클러스터 위에서 실행할지…)

  • Catalyst Pipeline

Catalyst Pipeline
  • 분석
    • DataFrame 객체의 relation 계산, 컬럼 및 타입등 확인 작업 수행
  • Logical Plan 최적화
    • 다양한 표현식을 기반으로 Compile Time 계산
    • Predicate Pushdown: join & filter → filter & join 형태로 변경 (ex: GroupByKey → ReduceByKey)
    • Projection Pruning: 연산에 필요한 칼럼만 가져오기
  • Physical Plan
    • Spark에서 실행 가능한 Plan으로 변환
  • Code Generation
    • 최적화된 Physical Plan을 Java Bytecode로 변환
  • 최적화 예시: 논리 실행계획에서 물리 실행 계획으로 변경 과정에서 Predicate Pushdown 자동 적용 예시
sales_df = spark.read.option("header", "true").csv("./dataset/sales/sales.csv")
return_df = spark.read.option("header", "true").csv("./dataset/sales/return.csv")
sales_df.createOrReplaceTempView("sales")
return_df.createOrReplaceTempView("return")
join_df = spark.sql("""
    SELECT sales.ORDER_NO, sales.ORDER_DATE, sales.CUSTOMER_NO, return.RETURN
    FROM   sales FULL JOIN return ON sales.ORDER_NO = return.ORDER_NO
    WHERE  sales.SHIPPING_WAY = '표준 배송'
""")
join_df.explain(True)

Tungsten Project

Catalyst를 통해 최적화된 Query Plan을 기반으로 좀 더 Row Level(CPU, 메모리) 측면에서 최적화 작업을 담당

*Tungsten Project

  • Catalyst를 통해 최적화된 Query Plan을 기반으로 좀 더 Row Level(CPU, 메모리) 측면에서 최적화 작업을 담당

여기까지 ‘Spark 1편 – Backend Service – Optimizer’에 대해 소개해드렸습니다. 유익한 정보가 되셨길 바랍니다. 감사합니다. 

Written by 한 제호 / Data실

BESPIN GLOBAL

관련

dataSparkService

HOT Trend

Recent Posts

  • 딜로이트도, 맥킨지도, 베스핀글로벌도: AI 에이전트로 일 바꾸는 시대

    2025년 07월 04일 클라우드베스핀글로벌clouddata데이터AI인공지능HelpNow AIbespinglobalAI에이전트helpnow업무자동화딜로이트
  • ⚔️데이터센터에서 시작된 전쟁? 요즘 뜨는 AIDC 개념부터 트렌드까지!

    2025년 06월 27일 클라우드clouddata데이터AI데이터센터클라우드 데이터센터bespinglobalAIDCAI 인프라베스핀글로벌
  • 구글부터 엔비디아까지, 빅테크 기업들의 AI 전략 최신본📖

    2025년 06월 20일 cloud베스핀글로벌클라우드data데이터AI구글마이크로소프트엔비디아AI에이전트google I/ONVIDIA GTC 2025Microsoft build 2025
  • AI를 연결한다고? 업계가 주목하는 ‘MCP’ 알아보기🔍

    2025년 06월 13일 베스핀글로벌클라우드cloudAIMCP
  • [WhaTap] RDS Failover/Reboot 관제 2 – RDS Failover

    2025년 05월 30일 RDSRDS FailoverRebootFailoverbespin global

베스핀글로벌은 모든 기업의 AI 혁신을 실현하기 위해, 세상에서 가장 혁신적이고 자동화된 AI 서비스와 솔루션을 만들어갑니다.
상호 : 베스핀글로벌 주식회사 ㅣ 대표자명 : 김써니, 허양호 ㅣ 사업자등록증번호 : 638-87-00223 ㅣ 통신판매번호 : 2019-서울서초-0347 ㅣ 대표전화 : 1668-1280
사업장주소지 : 서울특별시 서초구 강남대로 327, 13,14,15,16층(서초동,대륭서초타워) ㅣ 이메일 : info@bespinglobal.com ㅣ 개인정보 처리방침 ㅣ 개인정보 처리방침 안내

© 2026 BESPIN GLOBAL, All Rights Reserved.

BESPINGLOBAL
패밀리 사이트
China MEA SEA US

BESPIN Tech Blog
  • Home
  • Tech
    • CSP

      AWS

      GCP

      NCP

      Cloud

      Migration

      LZ, Control Tower

      Backup

      Monitoring

      Container

      Infra

      OS

      Middleware

      Data

      RDB

      Big Data Platform

      Application

      CI/CD

      BESPICK 구독하기 ㅣ 1668-1280

  • Trend
  • IT