Dataproc サーバーレスは、Spark プロパティを使用して、バッチ ワークロードに割り当てるコンピューティング リソース、メモリリソース、ディスク リソースを決定します。これらのプロパティ設定は、ワークロードの割り当ての使用量と費用に影響する可能性があります(詳しくは、Dataproc サーバーレスの割り当てと Dataproc サーバーレスの料金をご覧ください)。
Spark バッチ ワークロードのプロパティの設定
Google Cloud コンソール、gcloud CLI、または Dataproc API を使用して Dataproc サーバーレス Spark バッチ ワークロードを送信するときに、Spark プロパティを指定できます。
コンソール
Google Cloud コンソールで Dataproc の [バッチ作成] ページに移動します。
[プロパティ] セクションで [プロパティを追加] をクリックし、サポートされている Spark プロパティの
Key
(名前)とValue
を入力します。
gcloud
gcloud CLI 一括送信の例:
gcloud dataproc batches submit spark --properties=spark.checkpoint.compress=true \ --region=region \ other args ...
API
batches.create リクエストの一部として RuntimeConfig.properties にサポートされている Spark プロパティを設定します。
サポートされる Spark プロパティ
Dataproc Serverless for Spark では、ほとんどの Spark プロパティをサポートしていますが、YARN やシャッフル関連の Spark プロパティ(spark.master=yarn
や spark.shuffle.service.enabled
など)はサポートしていません。Spark アプリケーション コードで YARN またはシャッフルのプロパティが設定されている場合、アプリケーションは失敗します。
ランタイム環境のプロパティ
Dataproc Serverless for Spark では、ランタイム環境を構成するために、次のカスタム Spark プロパティがサポートされています。
プロパティ | 説明 |
---|---|
spark.dataproc.driverEnv.EnvironmentVariableName |
ドライバ プロセスに EnvironmentVariableName を追加します。複数の環境変数を指定できます。 |
リソース割り当てプロパティ
Dataproc Serverless for Spark では、リソース割り当てを構成するために次の Spark プロパティがサポートされています。
プロパティ | 説明 | デフォルト | 例 |
---|---|---|---|
spark.driver.cores |
Spark ドライバに割り当てるコア(vCPU)の数。有効な値: 4 、8 、16 。 |
4 |
|
spark.driver.memory |
Spark ドライバ プロセスに割り当てるメモリの量。サイズ単位の接尾辞(「m」、「g」または「t」)を付けた JVM メモリ文字列形式で指定されます。 ドライバのコアごとのドライバの合計メモリ(ドライバメモリのオーバーヘッドを含む)。これは、スタンダード コンピューティング階層の場合は |
512m 、2g |
|
spark.driver.memoryOverhead |
Spark ドライバ プロセスに割り当てる追加の JVM メモリの量。サイズ単位の接尾辞(「m」、「g」または「t」)を付けた JVM メモリ文字列形式で指定されます。 これは、JVM オーバーヘッド、内部文字列、その他のネイティブ オーバーヘッドに関連するヒープ以外のメモリであり、PySpark ドライバ プロセスやコンテナで実行される他のドライバ以外のプロセスで使用されるメモリなど、他のドライバ・プロセスによって使用されるメモリを含みます。ドライバを実行するコンテナの最大メモリサイズは、 ドライバのコアごとのドライバの合計メモリ(ドライバメモリのオーバーヘッドを含む)は、スタンダード コンピューティング階層の場合は |
10% のドライバ メモリです。ただし、PySpark バッチ ワークロードは除きます。これはデフォルトではドライバメモリの 40% になります。 | 512m 、2g |
spark.dataproc.driver.compute.tier |
ドライバで使用するコンピューティング階層。プレミアム コンピューティング階層では、コアごとのパフォーマンスは上がりますが、課金レートは高くなります。 | standard | スタンダード、プレミアム |
spark.dataproc.driver.disk.size |
サイズ単位の接尾辞(「k」、「m」、「g」、「t」)で指定されたドライバに割り当てられるディスク容量。
250GiB 以上の値を指定してください。
ドライバでプレミアム ディスク階層が選択されている場合、有効なサイズは 375g、750g、1500g、3000g、6000g、9000g です。 |
コア当たりの100GiB |
1024g 、2t |
spark.dataproc.driver.disk.tier |
ドライバのローカル ストレージとシャッフル ストレージに使用するディスク階層。プレミアム ディスク階層では、IOPS とスループットのパフォーマンスは上がりますが、課金レートは高くなります。ドライバでプレミアム ディスク階層を選択した場合は、spark.dataproc.driver.compute.tier=premium を使用してプレミアム コンピューティング階層も選択する必要があります。また、spark.dataproc.executor.disk.size を使用してディスク容量を指定する必要があります。プレミアム ディスク階層が選択されている場合、ドライバはシステム ストレージ用に 50 GiB のディスク容量を割り当てます。これはユーザー アプリケーションで使用できません。 | standard | スタンダード、プレミアム |
spark.executor.cores |
各 Spark エグゼキュータに割り当てるコア(vCPU)の数。有効な値: 4 、8 、16 。 |
4 |
|
spark.executor.memory |
各 Spark エグゼキュータ プロセスに割り当てるメモリ量。サイズ単位の接尾辞(「m」、「g」、「t」)を有するJVM メモリ文字列形式で指定されます。 エグゼキュータのコアごとのエグゼキュータのメモリの合計(エグゼキュータ・メモリのオーバーヘッドを含む)は、スタンダード コンピューティング階層の場合は |
512m 、2g |
|
spark.executor.memoryOverhead |
Spark エグゼキュータ プロセスに割り当てる追加の JVM メモリの量。サイズ単位の接尾辞(「m」、「g」または「t」)を付けた JVM メモリ文字列形式で指定されます。 これは、JVM オーバーヘッド、内部文字列、その他のネイティブ オーバーヘッドに使用されるヒープ以外のメモリであり、PySpark エグゼキュータのメモリと、コンテナ内で実行される他のエグゼキュータ以外のプロセスで使用されるメモリが含まれます。エグゼキュータを実行するコンテナの最大メモリサイズは、 エグゼキュータのコアごとのエグゼキュータのメモリの合計(エグゼキュータ・メモリのオーバーヘッドを含む)は、スタンダード コンピューティング階層の場合は |
10% のエグゼキュータ メモリです。ただし、PySpark バッチ ワークロードは除きます。これはデフォルトではエグゼキュータ メモリの 40% になります。 | 512m 、2g |
spark.dataproc.executor.compute.tier |
エグゼキュータで使用するコンピューティング階層。プレミアム コンピューティング階層では、コアごとのパフォーマンスは上がりますが、課金レートは高くなります。 | standard | スタンダード、プレミアム |
spark.dataproc.executor.disk.size |
サイズ単位の接尾辞(「k」、「m」、「g」、「t」)で指定された各エグゼキュータに割り当てられるディスク容量。
エグゼキュータのディスク容量は、シャッフル データや依存関係のステージングに使用される可能性があります。250GiB 以上の値を指定してください。
エグゼキュータでプレミアム ディスク階層が選択されている場合、有効なサイズは 375g、750g、1500g、3000g、6000g、9000g です。 |
コア当たりの100GiB |
1024g 、2t |
spark.dataproc.executor.disk.tier |
エグゼキュータのローカル ストレージとシャッフル ストレージに使用するディスク階層。プレミアム ディスク階層では、IOPS とスループットのパフォーマンスは上がりますが、課金レートは高くなります。エグゼキュータでプレミアム ディスク階層を選択した場合は、spark.dataproc.executor.compute.tier=premium を使用してプレミアム コンピューティング階層も選択する必要があります。また、spark.dataproc.executor.disk.size を使用してディスク容量を指定する必要があります。
プレミアム ディスク階層が選択されている場合、各エグゼキュータにはシステム ストレージ用に 50 GiB のディスク容量が割り当てられます。これはユーザー アプリケーションで使用できません。 | standard | スタンダード、プレミアム |
spark.executor.instances |
割り当てるエグゼキュータの初期数。バッチ ワークロードが開始されると、自動スケーリングはアクティブなエグゼキュータの数を変更する可能性があります。2 ~2000 にする必要があります。 |
自動スケーリングのプロパティ
Dataproc サーバーレス自動スケーリングの構成に使用できる Spark プロパティのリストについては、Spark の動的割り当てのプロパティをご覧ください。
その他のプロパティ
プロパティ | 説明 |
---|---|
dataproc.diagnostics.enabled |
このプロパティを有効にして、バッチ ワークロードの失敗やキャンセルで診断を実行します。診断が有効になっている場合、ワークロードの完了後に診断が完了するまで、バッチ ワークロードではコンピューティング リソースが引き続き使用されます。診断の tarball の場所を指す URI は、Batch.RuntimeInfo.diagnosticOutputUri API フィールドに一覧表示されます。 |
dataproc.gcsConnector.version |
このプロパティを使用して、Cloud Storage コネクタのバージョンにアップグレードします。このバージョンは、バッチ ワークロードのランタイム バージョンとともにインストールされるバージョンとは異なります。 |
dataproc.sparkBqConnector.version |
このプロパティを使用して、Spark BigQuery コネクタのバージョンにアップグレードします。このバージョンは、バッチ ワークロードのランタイム バージョンとともにインストールされるバージョンとは異なります(BigQuery コネクタを Dataproc Serverless for Spark とともに使用するを参照)。 |