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
Java 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 ランタイムを使用すると、ワークロードの構成も簡単になります。

    • より優れたデフォルト: プレミアム ティアでは、ドライバとエグゼキュータはデフォルトでプレミアム コンピューティング リソースとディスク リソースを使用するため、これらのリソースを使用するためにプロパティを設定する必要はありません。デフォルトのディスクサイズについては、デフォルトのディスクサイズをご覧ください。プレミアム ティアでは、ディスクサイズを 375 GiB の倍数にする必要はありません。
    • プロパティの削減: 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.75 GiB のメモリが提供され、3.0 ランタイムのデフォルトのメモリ設定よりも多くのメモリが提供されます。メモリシェイプを使用すると、メモリの構成も簡単になります。

    • 新しいメモリシェイプ プロパティ: ドライバまたはエグゼキュータのメモリシェイプを選択するには、spark.dataproc.driver.memory.shape プロパティまたは spark.dataproc.executor.memory.shape プロパティを highmem または standard に設定します。standard メモリシェイプは、vCPU ごとに 3.75 GiB のメモリを提供します。
    • 自動メモリサイズ設定: 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

次の表に、各メモリシェイプが提供するメモリと、4 つの vCPU(spark.driver.cores と spark.executor.cores のデフォルト値)を持つドライバまたはエグゼキュータのデフォルトの Spark メモリ設定を示します。

メモリの形状 vCPU あたりのメモリ PySpark バッチ ワークロード: メモリとメモリのオーバーヘッド その他のバッチ ワークロードとインタラクティブ セッション: メモリとメモリのオーバーヘッド
highmem 7.75 GiB 21154m と 8462m 26924m と 2692m
standard 3.75 GiB 9681m と 3872m 12321m と 1232m

注:

  • メモリシェイプのメモリは、vCPU の数に応じてスケーリングされます。たとえば、8 個の vCPU を持つ highmem エグゼキュータには 62 GiB のメモリが割り当てられます。

  • メモリシェイプのメモリの一部はシステム用に予約されており、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 ランタイムのデフォルトであるプレミアム ティアで実行されます。
  • ドライバはメモリシェイプを使用します。
  • ドライバには 4 つの vCPU(spark.driver.cores=4)があります。これはデフォルトです。
  • ドライバのディスクサイズ(spark.dataproc.driver.disk.size)が 450g 以下です。デフォルトは 400g です。
  • ワークロードで、ドライバに spark.driver.memory、spark.driver.memoryOverhead、spark.driver.memoryOverheadFactor、または GPU アクセラレータが設定されていない。

高速起動 VM で実行されるドライバは、同じメモリシェイプを使用する他のドライバと同じメモリを取得します。

デフォルトのディスクサイズ

4.0 ランタイムでは、ワークロードのティアによって、ドライバとエグゼキュータのデフォルトのディスクサイズが決まります。

階層 各ドライバとエグゼキュータのデフォルトのディスクサイズ
プレミアム(デフォルト) vCPU あたり 100 GiB、375 GiB 以上。たとえば、4 個の vCPU の場合は 400 GiB。
標準 vCPU あたり 75 GiB、最大 1,000 GiB。たとえば、4 個の vCPU の場合は 300 GiB です。

ディスクサイズを変更するには、spark.dataproc.driver.disk.size または spark.dataproc.executor.disk.size のリソース割り当てプロパティを設定します。プレミアム ティアでは、ディスクサイズを 375 GiB の倍数にする必要はありません。

サポートされていない機能と動作の変更

次の機能は、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