Data-driven Methodology/Spark
[Spark] 스파크 클러스터
by goatlab
2024. 1. 8.
스파크 클러스터
- 실행 환경은 일반적으로 여러 시스템 (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: 대부분의 작업을 드라이버 종속이 아닌 게으른 상태로 유지하고 클러스터 종속적으로 유지).
|