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 に渡します。