본문 바로가기
Data-driven Methodology/Spark

[Spark] 스파크 클러스터

by goatlab 2024. 1. 8.
728x90
반응형
SMALL

스파크 클러스터

 

https://spark.apache.org/docs/1.1.1/cluster-overview.html

  • 실행 환경은 일반적으로 여러 시스템 (ex: 클러스터)에 분산된다.
  • 실행을 위해 작업을 클러스터에 제출한다.
  • Spark 자체는 Scala / Java로 작성되었다. 그러나 Python 인터페이스를 사용하면 데이터 과학 전문가가 이점을 누릴 수 있다.

 

배포 유형

 

  • 자체 호스팅 클러스터 배포 (24시간 풀타임 엔지니어가 필요)
  • 클라우드 솔루션 (ex: Google Cloud의 Cloud Dataproc 및 AWS의 EMR)
  • 공급 업체 기반 배포 (ex: Databricks)
    • 여기서 공급 업체는 GCP, AWS 및 Azure와 같은 IAAS 제공업체 위에 위치한다.
    • 여러 데이터 과학 도구에 쉽게 액세스할 수 있다.
    • Airflow 및 MLflow와 같은 워크플로 관리 도구와 통합된다.

 

PySpark

 

  • PySpark는 데이터프레임을 기본 RDD에 매핑 하고 매우 큰 데이터세트를 조작할 수 있도록 한다.
  • 데이터 프레임에 대한 변경 사항은 Pandas와 달리 느리게 실행된다. 예를 들어, 행과 열에 대한 선택 또는 필터링은 표시, 다운로드 또는 Pandas를 통한 처리에 필요할 때까지 스파크 작업으로 실행되지 않는다.
  • 순수 Python에서 작업하는 경우 (ex: 목록 또는 Pandas 데이터 프레임 사용) 드라이버 노드는 단일 시스템 인스턴스로 작동한다. 이는 대규모 데이터 세트로 작업할 때 최적이 아니다.
  • PySpark 작업에서 가장 어려운 측면은 작업 (ex: 기능 엔지니어링 작업)에서 배포되지 않는 단계를 파악하고 대신 배포하도록 시도하는 것이다.
  • 모든 단계를 적절하게 최적화하려면 데이터의 하위 샘플에 대해 작업하는 것이 항상 좋다 (ex: 대부분의 작업을 드라이버 종속이 아닌 게으른 상태로 유지하고 클러스터 종속적으로 유지).

 

728x90
반응형
LIST

'Data-driven Methodology > Spark' 카테고리의 다른 글

Apache Spark  (0) 2024.01.08