1. Spark가 대체 뭐길래

JJong·2025년 1월 10일

Data Science

목록 보기
3/5
post-thumbnail

< 요새 데이터 관련 직무를 확인해보면 Spark 사용이 우대사항에 디게 많은데, 대체 뭔가 싶어서 공부하고 정리하는 고런 느낌 😁 >

1.1 Spark

  • 데이터 엔지니어링, 데이터 사이언스, 머신러닝등의 작업을 실행할 수 있는 Multi-Language 프레임워크. 단일 노드 뿐만 아니라 군집 형태로 대량의 컴퓨터 자원을 사용할 수 있음. 대량의 데이터에 대해서 분산된 컴퓨팅 처리를 신뢰성 있게 처리 가능.

1.2 Spark의 주요 기능

  • Batch/Streaming Data

    하나의 프로그래밍 모델과 프레임워크로 Batch 처리와 real-time streaming 을 통합 개발할 수 있다. Python, SQL, Scala, Java, R의 다양한 언어로 개발 가능

  • SQL Analysis

    반복된 쿼리, ad-hoc 쿼리 모두 ANSI SQL로 빠르게 분산된 처리결과를 얻을 수 있음. 기존의 다양한 Data Warehouse 솔루션 보다 빠름.(이게 킥인듯)

  • Data Science at Scale

    Petabyte-scale(1024TB) 데이터에 대해 downsampling 없이도 EDA를 수행할 수 있음.

  • Machine Learning

    ML algorithm을 학습시킬 수 있고, 로컬에서 작성하고 수행한 코드가 수천대의 클러스터에서도 동일하게 작동함.

1.3 Spark로 해소된 어려움

  • MapReduce의 한계 극복

    • 대량의 데이터에 대한 처리 작업은 MapReduce 라는 모델이 처리하는 것이 효율적이고 강력하다는 것이 Hadoop MapReduce에서 검증됨.
    • Hadoop MapReduce 는 이전에는 처리할 수 없던 대량의 데이터를 처리할 수 있게 한 의미가 있음. But
      1. Hadoop MapReduce는 빈번한 자원의 할당과 해제의 문제.
      2. 중간 결과 파일을 외부 스토리지를 사용함으로서 발생하는 지연시간과 부하 문제.
      3. 과도한 Shuffle 문제 등
    • 위의 문제들로 인해 실제 데이터 처리 작업보다 부가적인 작업에 의해 시간을 너무 많이 소모하고 자원을 낭비하는 문제가 있음.
  • Multi Language의 확장성

    Python, SQL, Scala, Java, R의 다양한 언어로 개발 가능해짐.

profile
please bbbbbbbbb 😂

0개의 댓글