Spark プロパティ

Spark バッチ ワークロードを送信するときに、Spark プロパティを設定できます。

例:

gcloud dataproc batches submit spark
    --properties=spark.checkpoint.compress=true \\
    --region=region \\
    other args ...

注:

  • Dataproc Serverless for Spark では、ほとんどの Spark プロパティをサポートしていますが、YARN やシャッフル関連の Spark プロパティ(spark.master=yarnspark.shuffle.service.enabled など)はサポートしていません。Spark アプリケーション コードで YARN またはシャッフルのプロパティが設定されている場合、アプリケーションは失敗します。

  • Compute Engine のクラスタ プロパティの Dataproc とは異なり、Dataproc Serverless for Spark のワークロード プロパティに接頭辞「spark」は含まれていません。

  • Dataproc Serverless for Spark 自動スケーリングは、Spark リソース割り当てプロパティによって制御されます。

カスタム Spark プロパティ

Dataproc Serverless for Spark では、次のカスタム Spark プロパティがサポートされています。

プロパティ デフォルト 説明
spark.dataproc.driver.disk.size コアあたり 100 GiB サイズ単位の接尾辞(「k」、「m」、「g」、「t」)で指定されたドライバ ノード(SparkContext が初期化されるドライバ プロセス)に使用するディスク量 1024g, 2t
spark.dataproc.executor.disk.size コアあたり 100 GiB サイズ単位の接尾辞(「k」、「g」、「g」または「t」)で指定されたエグゼキュータ ノード(エグゼキュータ プロセスが実行される場所)に使用するディスク量 1024g, 2t
spark.dataproc.driverEnv.<EnvironmentVariableName> ドライバ プロセスに EnvironmentVariableName を追加します。複数の環境変数を指定できます。

リソース割り当てプロパティ

Dataproc Serverless では、Spark プロパティを使用して、ワークロードを割り当てるコンピューティング、メモリ、ディスク リソースを決定します。これらのプロパティの値は、ワークロードによって使用される割り当てとコストに影響する可能性があります(Dataproc Serverless 割り当ておよび Dataproc Serverless 料金をご覧ください)。

プロパティ 効果
spark.driver.cores Spark ドライバに割り当てるコア(vCPU)の数。ドライバのメモリは、ドライバのコア数に応じて固定比(約 4 GB/コア)でスケーリングされるため、現在、個別に制御することはできません。Default: 4. 有効な値: 4、8、16。
spark.executor.cores 各 Spark エグゼキュータに割り当てるコア(vCPU)の数。エグゼキュータのメモリはエクゼキュータ コア数に応じて固定比(約 4 GB/コア)でスケーリングされるため、現在、個別に制御することはできません。Default: 4. 有効な値: 4、8、16
spark.dataproc.driver.disk.size ドライバに割り当てるディスク容量。200 GB 以上にする必要があります。
spark.dataproc.executor.disk.size 各エグゼキュータに割り当てるディスク容量。エグゼキュータのディスク容量は、シャッフル データや依存関係のステージングに使用できます。200 GB 以上にする必要があります。
spark.executor.instances 割り当てるエグゼキュータの初期数。バッチの実行が開始されると、自動スケーリングによりアクティブなエグゼキュータの数が変更されることがあります。2 ~ 100 にする必要があります。
spark.dynamicAllocation.initialExecutors 自動スケーリングがリクエストするエグゼキュータの初期数。バッチの実行が開始されると、自動スケーリングによりアクティブなエグゼキュータの数が変更されることがあります。2 ~ 100 にする必要があります。
spark.dynamicAllocation.minExecutors バッチがスケールダウンできるエグゼキュータの最小数。2 以上にする必要があります。
spark.dynamicAllocation.maxExecutors バッチがスケールアップできるエグゼキュータの最大数。1,000 以下にする必要があります。