Managed Service for Apache Spark サーバーレス デプロイに関するよくある質問

このページでは、Managed Service for Apache Spark のサーバーレス デプロイに関するよくある質問とその回答を紹介します。特に明記されていない限り、この情報はクラスタ デプロイではなく、Managed Service for Apache Spark のサーバーレス デプロイにのみ適用されます。

Managed Service for Apache Spark クラスタ デプロイではなく、Managed Service for Apache Spark サーバーレス デプロイを使用するのはいつですか?

  • Managed Service for Apache Spark サーバーレス デプロイ:

    • PySpark カーネル Jupyter ノートブックで Spark バッチ ワークロードとインタラクティブ セッションをサポートします。
    • ワークロードとインタラクティブなセッション インフラストラクチャを作成、管理します。
  • Managed Service for Apache Spark クラスタ デプロイ:

    • さまざまなタイプの Spark ジョブや、Flink、Hadoop、Hive、Pig、Presto などの他のオープンソース コンポーネントに基づくジョブの送信をサポートします。

    • インフラストラクチャの作成と管理は行いません。Managed Service for Apache Spark クラスタの作成と管理はお客様が行います。

Managed Service for Apache Spark サーバーレス デプロイでは何ができますか?

ワークロードの実行プランはどのように設定すればよいですか?

ワークロードは同時または順番に実行できます。実行プラン はリソースの割り当てに影響します。 Google Cloud バッチリソースの割り当てで許可されている数のワークロードを並行して実行できます。

Managed Service for Apache Spark サーバーレス デプロイでカスタム イメージを使用できますか?

Managed Service for Apache Spark Spark ワークロードのメモリとディスク リソースを指定できますか?

はい。プレミアム エグゼキュータとドライバのコンピューティングおよび ディスク階層と、ワークロードの送信時に割り当てるドライバとエグゼキュータのコンピューティング リソースとディスク リソースの量 を指定できます( リソース割り当てプロパティを参照)。

Managed Service for Apache Spark VPC ネットワークの IP アドレス範囲を指定するにはどうすればよいですか?

Managed Service for Apache Spark ワークロードは、環境内で実行されます。 Serverless Spark ワークロードの各 Spark ドライバと Spark エグゼキュータは、 Managed Service for Apache Spark VPC ネットワークの 1 つの内部 IP アドレスを消費します。 /16 は、Managed Service for Apache Spark VPC ネットワークの一般的なユーザー指定 CIDR アドレス範囲 です 。実行する予定の同時実行ワークロードの数に基づいて、ネットワークの IP アドレス範囲を制限できます。

Managed Service for Apache Spark はデータの所在地をサポートしていますか?

はい。ワークロードが処理されるリージョンを指定します。 指定したリージョンで入出力データセットを特定します。

Managed Service for Apache Spark は、ワークロードを実行するために、指定したリージョン内のゾーンをどのように選択しますか?

Managed Service for Apache Spark は、容量と可用性に基づいてワークロードを実行する Compute Engine ゾーンを選択します。ワークロードの開始後にゾーンが使用できなくなると、ワークロードは失敗するため、失敗したワークロードを再送信する必要があります。

Managed Service for Apache Spark ワークロードでは、コンピューティング リソースをどのように使用しますか?

各ワークロードは独自のコンピューティング リソースで実行されます。複数のバッチ送信でコンピューティング リソースを共有または再利用することはありません。

ベスト プラクティス:

  • 短時間で実行されるジョブではなく、中時間で実行されるジョブに合わせてワークロードを最適化します。

  • Cloud Storage の複数のワークロードがアクセスするデータを保持します。

Managed Service for Apache Spark のお知らせ、機能、バグ修正、既知の問題、非推奨に関する情報はどこで確認できますか?

Managed Service for Apache Spark のリリースノートをご覧ください。

同時実行ワークロードはリソースと競合しますか?

Managed Service for Apache Spark ワークロードは、同時に実行されるすべてのワークロードを実行するのにリソースの割り当てが不十分な場合にのみ、リソースに対して競合します。 それ以外の場合、ワークロードは完全に分離されます。

Managed Service for Apache Spark の割り当てはどのように割り当てられますか?

Managed Service for Apache Spark バッチは、リソースを消費します。 Google Cloud 詳細については、Dataproc Serverless の割り当てをご覧ください。

Managed Service for Apache Spark の永続的履歴サーバーを設定する必要がありますか?

Managed Service for Apache Spark で使用する永続履歴サーバー(PHS) の設定はオプションです。PHS を使用すると、指定した Cloud Storage バケット内の Spark イベントやその他のログを、標準の Managed Service for Apache Spark のステージング バケットと一時バケット の 90 日間の保持期間(TTL)が経過した後も最大限表示できます。

使用できる Managed Service for Apache Spark Spark ログは何ですか?

Spark エグゼキュータとドライバのログは、Spark ワークロードの実行中と実行後に Cloud Logging で使用できます。また、Spark アプリケーションはワークロードの実行中に 永続的履歴サーバー(PHS) のウェブ インターフェースに表示されます(PHS の UI で [PHS] > [不完全なアプリケーション] を選択)。

Managed Service for Apache Spark PHS を設定すると、Cloud Storage に保存されている Spark イベントログに永続的にアクセスできます。このログは、Spark アプリケーションの実行に関する有益な情報(DAG、エグゼキュータ イベントなど)を提供します。

Spark ワークロードのエグゼキュータ数を設定できますか?

はい。 spark.executor.instances プロパティを使用して、Spark ワークロードのエグゼキュータ数を設定できます。ただし、Spark はコアごとに 1 つのタスクを実行するため、ワークロードで使用できるコアの合計数の方がエグゼキュータの数よりも重要です。たとえば、ワークロードにそれぞれ 2 つのコアを持つ 4 つのエグゼキュータがある場合、4 * 2 = 8 タスクを同時に実行します。また、それぞれ 4 つのコアを持つ 2 つのエグゼキュータがあるワークロードに対して、同じ数のタスクを実行します。各ワークロードのコア数は同じであるため、同じ数のタスクが実行されます。 spark.executor.cores プロパティを使用して、Managed Service for Apache Spark ワークロードのエグゼキュータあたりのコア数を設定できます。

Managed Service for Apache Spark での自動スケーリングに使用される Spark 指標にはどのようなものがありますか?

Managed Service for Apache Spark は、maximum-neededrunning の Spark の動的割り当て指標を確認して、スケールアップするかスケールダウンするかを判断します。 Managed Service for Apache Spark の自動スケーリングをご覧ください。

Spark プロパティを使用して、Managed Service for Apache Spark 自動スケーリングの動作を構成できますか?

はい。Managed Service for Apache Spark の自動スケーリングは、Spark の動的割り当てに基づいており、デフォルトで有効になっています。次の Spark プロパティSpark の動的割り当てプロパティを調整できます。

  • spark.executor.instances
  • spark.dynamicAllocation.initialExecutors
  • spark.dynamicAllocation.minExecutors
  • spark.dynamicAllocation.maxExecutors

Spark ワークロードを送信するために、コードを JAR ファイルにパッケージ化する必要があるのはなぜですか?

Spark は Scala で記述されているため、ドライバ プロセスとワーカー プロセスの両方が JVM プロセスとして動作します。JVM 言語では、JAR ファイルはコードをパッケージ化する主な方法です。ワークロードを送信するときに、JAR ファイルを Managed Service for Apache Spark に渡します。