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ランタイムを使用すると、ワークロードの構成も簡単になります。- より優れたデフォルト: プレミアム ティアでは、ドライバとエグゼキュータはデフォルトでプレミアム コンピューティング リソースとディスク リソースを使用するため、これらのリソースを使用するためにプロパティを設定する必要はありません。デフォルトのディスクサイズについては、デフォルトのディスクサイズをご覧ください。プレミアム ティアでは、ディスクサイズを
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 テーブルを作成してクエリできます。事前構成された
bigquerySpark カタログは引き続き使用できます。別のカタログを使用するには、スターター カタログをオプトアウトするをご覧ください。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 パッケージを示します。テーブルにパッケージのバージョンが記載されていない場合、ランタイムには、ランタイムのビルド時に他のパッケージと互換性のある最新バージョンのパッケージが含まれます。これらのバージョンは、サブマイナー ランタイム リリースで変更される可能性があります。
| パッケージ名 | バージョン |
|---|---|
| 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 |