Managed Service for Apache Spark 런타임 4.0

Spark 런타임 버전 4.0 구성요소

구성요소 4.0.0
Apache Spark 4.2.0
Cloud Storage 커넥터 4.0.7
BigQuery 커넥터 0.46.0
자바 25
Python 3.13
Scala 2.13.17

참고:

  • 4.0 런타임은 UTF-8를 기본 문자 인코딩으로 사용합니다.

  • 4.0 런타임은 Conda 대신 Pixi를 사용하여 Python 환경을 관리합니다. 환경에 포함된 패키지는 Python 라이브러리를 참조하세요.

런타임 4.0 기능 및 개선사항

3.0 런타임과 비교하여 4.0 런타임에는 기본값 및 기능에 대한 다음과 같은 변경사항이 포함됩니다.

  • 기본적으로 프리미엄 등급: dataproc.tier 속성을 standard로 설정하지 않는 한 일괄 워크로드는 프리미엄 등급에서 실행됩니다. 대화형 세션은 항상 프리미엄 등급에서 실행됩니다. 프리미엄 등급 워크로드는 프리미엄 데이터 컴퓨팅 단위(DCU) 요율로 청구됩니다.

    4.0 런타임을 사용하면 워크로드를 더 쉽게 구성할 수 있습니다.

    • 더 나은 기본값: 프리미엄 등급에서 드라이버와 실행자는 기본적으로 프리미엄 컴퓨팅 및 디스크 리소스를 사용하므로 이를 사용하기 위해 속성을 설정할 필요가 없습니다. 기본 디스크 크기는 기본 디스크 크기를 참조하세요. 프리미엄 등급에서는 디스크 크기가 375GiB의 배수일 필요가 없습니다.
    • 더 적은 속성: dataproc.tier 속성은 드라이버 및 실행자의 컴퓨팅 및 디스크 리소스를 결정하므로 별도로 구성할 필요가 없습니다. spark.dataproc.driver.compute.tier, spark.dataproc.executor.compute.tier, spark.dataproc.driver.disk.tier, spark.dataproc.executor.disk.tier 속성이 삭제됩니다.
  • 기본적으로 Lightning Engine: 프리미엄 등급 일괄 워크로드는 기본적으로 Lightning Engine을 사용합니다. 선택 해제하려면 spark.dataproc.engine=default를 설정합니다. 대화형 세션은 기본적으로 Lightning Engine을 사용하지 않습니다. 대화형 세션에 사용 설정하려면 spark.dataproc.engine=lightningEngine을 설정합니다. 네이티브 쿼리 실행도 사용하려면 spark.dataproc.lightningEngine.runtime=native를 설정합니다.

  • 기본적으로 highmem 메모리 형태: 4.0 런타임에는 드라이버와 실행자가 가져오는 메모리 양을 결정하는 메모리 형태가 도입됩니다. 드라이버와 실행자는 기본적으로 highmem 메모리 형태를 사용합니다. 이 형태는 vCPU당 7.75GiB의 메모리를 제공하며 3.0 런타임의 기본 메모리 설정보다 더 많은 메모리를 제공합니다. 메모리 형태를 사용하면 메모리를 더 쉽게 구성할 수 있습니다.

    • 새 메모리 형태 속성: 드라이버 또는 실행자의 메모리 형태를 선택하려면 spark.dataproc.driver.memory.shape 또는 spark.dataproc.executor.memory.shape 속성을 highmem 또는 standard로 설정합니다. standard 메모리 형태는 vCPU당 3.75GiB의 메모리를 제공합니다.
    • 자동 메모리 크기 조정: Managed Service for Apache Spark는 메모리 형태에서 드라이버 및 실행자의 Spark 메모리 및 메모리 오버헤드 크기를 조정하므로 spark.driver.memory, spark.executor.memory, spark.driver.memoryOverhead 또는 spark.executor.memoryOverhead를 설정할 필요가 없습니다.
  • 더 빠른 시작: 프리미엄 등급에서는 기본 드라이버 구성을 사용하는 워크로드가 빠른 시작 VM에서 드라이버를 실행할 수 있으므로 워크로드 시작 시간이 단축됩니다.

  • Lakehouse 런타임 카탈로그를 기본 카탈로그로 사용: 배치 워크로드와 대화형 세션은 Lakehouse 런타임 카탈로그를 기본 Spark 카탈로그로 사용하므로 카탈로그를 구성하지 않고도 Apache Iceberg 테이블을 만들고 쿼리할 수 있습니다. 사전 구성된 bigquery Spark 카탈로그는 계속 사용할 수 있습니다. 다른 카탈로그를 사용하려면 시작 카탈로그 선택 해제를 참조하세요.

  • DCU 할당량: 워크로드는 프로젝트의 Compute Engine CPU 및 디스크 할당량 대신 Managed Service for Apache Spark 데이터 컴퓨팅 단위 할당량(DataComputeUnitsPerProjectPerRegion)을 사용합니다. GPU를 사용하는 워크로드는 Compute Engine 할당량을 계속 사용합니다. 자세한 내용은 Managed Service for Apache Spark 서버리스 할당량을 참조하세요.

4.0 런타임에는 리전 및 멀티 영역 워크로드, 기본 최종 사용자 인증 정보, 빠른 리소스 정리와 같은 3.0 런타임의 기능도 포함되어 있습니다.

메모리 형태

4.0 런타임에서 드라이버 및 실행자의 메모리 형태에 따라 할당된 메모리 양이 결정됩니다. 메모리 형태는 각 vCPU에 고정된 메모리 양을 제공합니다. Managed Service for Apache Spark는 이 메모리를 Spark 힙(spark.driver.memory 또는 spark.executor.memory)과 메모리 오버헤드(spark.driver.memoryOverhead 또는 spark.executor.memoryOverhead)로 분할합니다.

4.0 런타임은 드라이버 및 실행자의 메모리 형태를 선택하는 다음 속성을 도입합니다.

속성 설명 기본값
spark.dataproc.driver.memory.shape 드라이버의 메모리 형태(highmem 또는 standard)입니다. highmem
spark.dataproc.executor.memory.shape 실행자의 메모리 형태(highmem 또는 standard)입니다. highmem

다음 표에는 각 메모리 형태가 제공하는 메모리와 spark.driver.cores 및 spark.executor.cores의 기본값인 vCPU 4개가 있는 드라이버 또는 실행자의 기본 Spark 메모리 설정이 나와 있습니다.

메모리 형태 vCPU당 메모리 PySpark 일괄 워크로드: 메모리 및 메모리 오버헤드 기타 일괄 워크로드 및 대화형 세션: 메모리 및 메모리 오버헤드
highmem 7.75 GiB 21154m 및 8462m 26924m 및 2692m
standard 3.75GiB 9681m 및 3872m 12321m 및 1232m

참고:

  • 메모리 형태의 메모리는 vCPU 수에 따라 확장됩니다. 예를 들어 vCPU가 8개인 highmem 실행자는 메모리 62GiB를 가져옵니다.

  • 메모리 형태의 메모리 중 일부는 시스템용으로 예약되어 있으며 Spark에서 사용할 수 없습니다. 커스텀 컨테이너 이미지를 사용하는 워크로드는 추가 메모리를 예약하므로 기본 Spark 메모리 설정이 약간 더 낮습니다.

  • PySpark 일괄 워크로드는 메모리 오버헤드 계수 0.4를 사용합니다. 다른 일괄 워크로드 및 대화형 세션은 메모리 오버헤드 계수 0.1을 사용합니다. 메모리 형태의 메모리가 힙과 메모리 오버헤드 간에 분할되는 방식을 변경하려면 spark.driver.memoryOverheadFactor 또는 spark.executor.memoryOverheadFactor를 설정합니다.

  • 메모리 형태는 드라이버 및 실행자에 프로비저닝되는 메모리를 결정하며, 이는 DCU 사용량에 영향을 미칩니다. 자세한 내용은 Managed Service for Apache Spark 가격 책정을 참조하세요.

메모리 도형이 적용되는 방식

Managed Service for Apache Spark는 다음과 같이 드라이버와 실행자에 메모리 형태를 적용합니다.

  • 드라이버 또는 실행자는 다음 중 하나를 설정하지 않는 한 highmem 메모리 형태를 사용합니다.

    • 메모리 형태: spark.dataproc.driver.memory.shape 또는 spark.dataproc.executor.memory.shape
    • 메모리: spark.driver.memory 또는 spark.executor.memory
    • 메모리 오버헤드: spark.driver.memoryOverhead 또는 spark.executor.memoryOverhead
    • GPU 가속기 GPU를 사용하는 드라이버와 실행자는 고정된 양의 메모리를 가져옵니다.
  • 드라이버 또는 실행자의 메모리 또는 메모리 오버헤드를 설정하고 메모리 형태를 설정하지 않으면 드라이버 또는 실행자가 메모리 형태를 사용하지 않습니다. 대신 Managed Service for Apache Spark는 이전 런타임과 마찬가지로 지정한 메모리에서 드라이버 또는 실행기 크기를 조정합니다.

  • 드라이버 또는 실행자의 메모리 오버헤드 계수를 설정해도 메모리 형태는 변경되지 않습니다.

  • Managed Service for Apache Spark는 다음과 같은 경우 일괄 워크로드 또는 대화형 세션을 거부합니다.

    • 드라이버 또는 실행자의 메모리 형태를 설정하고 동일한 드라이버 또는 실행자의 메모리 또는 메모리 오버헤드도 설정합니다. 메모리 형태의 메모리가 분할되는 방식을 변경하려면 메모리 오버헤드 계수를 대신 설정합니다.
    • 메모리 형태를 highmem 또는 standard 이외의 값으로 설정합니다.

빠른 시작 드라이버

프리미엄 등급에서 Managed Service for Apache Spark는 빠른 시작 VM에서 드라이버를 실행하여 워크로드 시작 시간을 줄일 수 있습니다. 다음 조건이 모두 충족되면 드라이버를 빠른 시작 VM에서 실행할 수 있습니다.

  • 워크로드는 4.0 런타임의 기본값인 프리미엄 등급에서 실행됩니다.
  • 드라이버는 메모리 형태를 사용합니다.
  • 드라이버에는 기본값인 vCPU 4개(spark.driver.cores=4)가 있습니다.
  • 드라이버 디스크 크기(spark.dataproc.driver.disk.size)가 450g 이하입니다. 기본값은 400g입니다.
  • 워크로드가 드라이버에 대해 spark.driver.memory, spark.driver.memoryOverhead, spark.driver.memoryOverheadFactor 또는 GPU 가속기를 설정하지 않습니다.

빠른 시작 VM에서 실행되는 드라이버는 동일한 메모리 형태를 사용하는 다른 드라이버와 동일한 메모리를 가져옵니다.

기본 디스크 크기

4.0 런타임에서 워크로드의 등급에 따라 드라이버 및 실행기의 기본 디스크 크기가 결정됩니다.

등급 각 드라이버 및 실행기의 기본 디스크 크기
Premium(기본값) vCPU당 100GiB, 최소 `375` GiB 예를 들어 vCPU 4개의 경우 400GiB입니다.
표준 vCPU당 `75` GiB, 최대 1,000GiB 예를 들어 vCPU 4개의 경우 `300` GiB입니다.

디스크 크기를 변경하려면 spark.dataproc.driver.disk.size 또는 spark.dataproc.executor.disk.size 리소스 할당 속성을 설정합니다. 프리미엄 등급에서는 디스크 크기가 375GiB의 배수일 필요가 없습니다.

지원되지 않는 기능 및 동작 변경사항

다음 기능은 4.0 런타임에서 지원되지 않거나 다르게 작동합니다.

  • 컴퓨팅 및 디스크 등급 속성: spark.dataproc.driver.compute.tier, spark.dataproc.executor.compute.tier, spark.dataproc.driver.disk.tier, spark.dataproc.executor.disk.tier 속성은 지원되지 않습니다. 대신 dataproc.tier 속성을 사용하세요.

  • 오프힙 메모리 속성: spark.memory.offHeap.enabled 및 spark.memory.offHeap.size 속성은 지원되지 않습니다.

  • 서브네트워크: 일괄 워크로드를 제출하거나 대화형 세션을 만들 때 서브네트워크를 지정해야 합니다. 이중 스택(IPv4 및 IPv6) 및 IPv6 전용 서브네트워크는 지원되지 않습니다. 자세한 내용은 네트워크 구성을 참조하세요.

  • 커스텀 Spark BigQuery 커넥터: Spark BigQuery 커넥터 JAR 파일을 일괄 워크로드에 추가하는 경우 dataproc.artifacts.remove=spark-bigquery-connector 속성을 설정하여 사전 설치된 커넥터를 삭제합니다. 그렇지 않으면 일괄 워크로드가 실패합니다.

  • 스테이징 버킷: 4.0 런타임은 Cloud Storage 스테이징 버킷을 사용하지 않습니다.

  • 영구 기록 서버(PHS): PHS는 지원되지 않습니다. 대신 Spark UI를 사용하세요.

  • SparkR: SparkR 일괄은 지원되지 않습니다. 대신 sparklyr를 사용하세요.

  • Jupyter 세션: Jupyter 세션은 지원되지 않습니다. 대신 대화형 Spark 개발의 업계 표준인 Spark Connect 세션을 사용하세요.

Python 라이브러리

다음 표에는 4.0 런타임에 포함된 Python 패키지가 나와 있습니다. 테이블에 패키지 버전이 나열되지 않으면 런타임에는 런타임이 빌드될 때 다른 패키지와 호환되는 최신 버전의 패키지가 포함됩니다. 이러한 버전은 하위 부 런타임 출시 버전에서 변경될 수 있습니다.

serverless-spark-4.0-debian-13 Python 라이브러리
패키지 이름 버전
accelerate
bigframes
ca-certificates
certifi
cookiecutter
cuda 12.9
cudnn
cython
dask
데이터 세트
db-dtypes
deepspeed
delta-spark 4.4.0
evaluate
fastavro
fastparquet
gcsfs
google-auth-oauthlib
google-cloud-aiplatform
google-cloud-alloydb-connector[pg8000]
google-cloud-bigquery
google-cloud-bigtable
google-cloud-container
google-cloud-datacatalog
google-cloud-dataproc
google-cloud-datastore
google-cloud-dlp
google-cloud-language
google-cloud-logging
google-cloud-monitoring
google-cloud-pubsub
google-cloud-redis
google-cloud-secret-manager
google-cloud-spanner
google-cloud-spark-connect[interactive]
google-cloud-speech
google-cloud-storage
google-cloud-storage-control
google-cloud-texttospeech
google-cloud-translate
google-cloud-vision
holoviews
ipyparallel
keyrings.google-artifactregistry-auth
langchain
lightgbm
mkl
mlflow
nccl
nltk
numba
numba-cuda
numpy
onnx
opencv-python
optuna
pandas
papermill
polars
psycopg2-binary
pyarrow
pydot
pyiceberg
pymongo
pynvml
python 3.13
python-dateutil
pytorch-gpu
요청
rtree
scikit-image
scikit-learn
scipy
seaborn
sentence-transformers
sentencepiece
shap
spacy
sqlalchemy
statsforecast
sympy
테이블
torcheval
torchvision
transformers
virtualenv
wordcloud
xgboost 3.4