Managed Service for Apache Spark に、以前の「Compute Engine 上の Dataproc」(クラスタ デプロイ)と以前の「Apache Spark 向けGoogle Cloud Serverless」(サーバーレス デプロイ)のプロダクト オプションが含まれるようになりました。
どちらのオプションも、OSS 互換でデータ形式を完全にサポートする、スケーラビリティが高くプロダクション レディで安全なマネージド Spark 環境を提供しますが、基盤となるインフラストラクチャの管理方法とリソースの課金方法が異なります。Spark ソリューションを選択する際は、次の機能とユースケースを確認してください。
Managed Service for Apache Spark のサーバーレス デプロイの詳細については、Managed Service for Apache Spark のサーバーレス デプロイの概要をご覧ください。
Managed Service for Apache Spark のデプロイを比較する
次の表に、Managed Service for Apache Spark クラスタとサーバーレス デプロイの主な違いを示します。
| デプロイ | サーバーレス | クラスタ |
|---|---|---|
| 処理フレームワーク | バッチ ワークロードとインタラクティブ セッション: Spark | Spark。その他のオープンソース フレームワーク(Hive、Flink、Trino、Kafka など) |
| サーバーレス | ○ | × |
| スタートアップ時間 | 50 代 | 120 秒 |
| インフラストラクチャの制御 | × | ○ |
| リソース管理 | サーバーレス | YARN |
| GPU のサポート | はい | ○ |
| インタラクティブ セッション | ○ | × |
| カスタム コンテナ | はい | × |
| VM アクセス(SSH) | × | ○ |
| Java のバージョン | Java 17、21 | Java 17 以前のバージョン |
最適な Managed Service for Apache Spark のデプロイを決定する
このセクションでは、Managed Service for Apache Spark の主な強みと主なユースケースについて説明します。これにより、Spark ワークロードに最適な Managed Service for Apache Spark デプロイ(クラスタまたはサーバーレス)を選択できます。
概要
Managed Service for Apache Spark のデプロイは、それぞれが提供する制御の程度、インフラストラクチャ管理、課金モードが異なります。
- サーバーレス デプロイ: Managed Service for Apache Spark は、フルマネージドの Google Cloudインフラストラクチャで Spark を実行する Spark-jobs-as-a-service を提供します。ジョブの実行時間に対して料金が発生します。
- クラスタのデプロイ: Compute Engine インフラストラクチャでマネージド Spark を実行する Spark クラスタをサービスとして提供します。クラスタの稼働時間に応じて料金が発生します。
これらの違いにより、Managed Service for Apache Spark の各デプロイは次のユースケースに最適です。
| デプロイ | ユースケース |
|---|---|
| サーバーレス | さまざまな専用ジョブ環境 バッチ ワークロードのスケジュール設定 インフラストラクチャ管理よりもコード管理を優先 |
| クラスタ | 長時間稼働する共有環境 インフラストラクチャをきめ細かく制御する必要があるワークロード 以前の Hadoop 環境と Spark 環境の移行 |
主な違い
| 機能 | サーバーレス デプロイ | クラスタのデプロイ |
|---|---|---|
| 管理モデル | フルマネージドでサーバーレスの実行環境。 | クラスタベース。クラスタをプロビジョニングして管理します。 |
| 細かい管理と高度なカスタマイズ | インフラストラクチャの制御が少なく、コードの送信と Spark パラメータの指定に重点が置かれています。 | クラスタ構成、マシンタイプ、ソフトウェアをより詳細に制御できます。Spot VM を使用し、予約と Compute Engine リソース容量を再利用できます。CPU アーキテクチャなど、特定の VM シェイプに依存するワークロードに適しています。 |
| ユースケース | アドホック クエリ、インタラクティブ分析、新しい Spark パイプライン、リソースのニーズが予測できないワークロード。 | 長時間実行される共有クラスタ、カスタム構成で既存の Hadoop ワークロードと Spark ワークロードを移行する、高度なカスタマイズが必要なワークロード。 |
| 運用上のオーバーヘッド | オーバーヘッドの削減。 Google Cloud は、インフラストラクチャ、スケーリング、プロビジョニングを管理し、NoOpsモデルを可能にします。Gemini Cloud Assist を使用すると、トラブルシューティングが容易になります。また、サーバーレスの自動チューニングにより、最適なパフォーマンスを実現できます。 |
クラスタの管理、スケーリング、メンテナンスが必要になるため、オーバーヘッドが大きくなる。 |
| 効率モデル | アイドル状態のコンピューティング オーバーヘッドなし: ジョブの実行時にのみコンピューティング リソースが割り当てられます。起動とシャットダウンの費用はかかりません。効率向上のために、共有インタラクティブ セッションがサポートされています。 | 共有、マルチテナンシー モデルにより、ジョブとチーム間でクラスタを共有することで効率が向上します。 |
| 位置情報の管理 | Managed Service for Apache Spark は、追加費用なしでリージョン ワークロードをサポートし、信頼性と可用性を高めます。 | クラスタはゾーンです。クラスタの作成時にゾーンを自動選択できます。 |
| 費用 | 消費されたリソースに基づいて、起動と停止を除く Spark ジョブの実行時間に対してのみ課金されます。使用されたデータ コンピューティング ユニット(DCU)とその他のインフラストラクチャ費用として課金されます。 | ノード数に基づいて、クラスタの実行時間(起動と停止を含む)に対して課金されます。Managed Service for Apache Spark のライセンス料金とインフラストラクチャ費用が含まれます。 |
| 確約利用割引(CUD) | BigQuery の費用ベースの CUD は、Managed Service for Apache Spark ジョブに適用されます。 | Compute Engine CUD は、すべてのリソース使用量に適用されます。 |
| イメージとランタイムの制御 | ユーザーは、Managed Service for Apache Spark のマイナー ランタイム バージョンに固定できます。サブマイナー バージョンは、Managed Service for Apache Spark によって管理されます。 | ユーザーは、Managed Service for Apache Spark イメージのマイナー バージョンとサブマイナー バージョンを固定できます。 |
| リソース管理 | サーバーレス | YARN |
| GPU のサポート | はい | はい |
| インタラクティブ セッション | ○ | × |
| カスタム コンテナ | はい | × |
| VM アクセス(SSH) | × | はい |
| Java バージョン | Java 17、21 |
サポートされている以前のバージョン |
| 起動時間 | 50 代 | 120 秒 |
サーバーレス デプロイを選択する場合
Managed Service for Apache Spark のサーバーレス デプロイは、クラスタ管理の複雑さを抽象化し、Spark コードに集中できるようにします。そのため、次のデータ処理シナリオでの使用に最適です。
- アドホック分析とインタラクティブ分析: Spark を使用してインタラクティブ クエリと探索的分析を実行するデータ サイエンティストやアナリストにとって、サーバーレス モデルはインフラストラクチャに集中することなく迅速に開始できる方法です。
- Spark ベースのアプリケーションとパイプライン: Spark で新しいデータ パイプラインまたはアプリケーションを構築する場合、Managed Service for Apache Spark はクラスタ管理の運用オーバーヘッドを排除することで、開発を大幅に加速できます。
- 需要が散発的または予測不可能なワークロード: 断続的な Spark ジョブや、リソース要件が変動するジョブの場合、サーバーレスの自動スケーリングと従量課金制(ジョブ リソースの消費に対して課金)により、費用を大幅に削減できます。
- デベロッパーの生産性向上に重点を置く: Managed Service for Apache Spark は、クラスタのプロビジョニングと管理の必要性を排除することで、ビジネス ロジックの作成を迅速化し、より迅速な分析情報を提供して、生産性を向上させます。
- 運用の簡素化とオーバーヘッドの削減: Managed Service for Apache Spark のインフラストラクチャ管理により、運用上の負担とコストが軽減されます。
クラスタ デプロイを選択する場合
Managed Service for Apache Spark クラスタのデプロイを使用して、Apache Spark やその他のオープンソースのデータ処理フレームワークを実行できます。制御性と柔軟性が高いため、次のシナリオで推奨されます。
- 既存の Hadoop ワークロードと Spark ワークロードの移行: オンプレミスの Hadoop クラスタまたは Spark クラスタを Google Cloudに移行することをサポートします。特に古い Spark バージョンを使用している場合に、コードの変更を最小限に抑えて既存の構成を複製します。
- 詳細なカスタマイズと制御: クラスタのマシンタイプ、ディスクサイズ、ネットワーク構成をカスタマイズできます。このレベルの制御は、複雑で長時間実行されるジョブのパフォーマンス チューニングとリソース使用率の最適化に不可欠です。
- 長時間実行される永続クラスタ: 複数のチームとプロジェクトで継続的に長時間実行される Spark ジョブと永続クラスタをサポートします。
- 多様なオープンソース エコシステム: Hive、Pig、Presto などの Hadoop エコシステム ツールを実行するデータ処理パイプラインを Spark ワークロードで実行するための統合環境を提供します。
- セキュリティ コンプライアンス: インフラストラクチャを制御して、個人を特定できる情報(PII)や保護医療情報(PHI)の保護など、特定のセキュリティまたはコンプライアンス基準を満たすことができます。
- インフラストラクチャの柔軟性: Spot VM を提供し、予約と Compute Engine リソース容量を再利用してリソース使用量のバランスを取り、クラウド インフラストラクチャ戦略を促進します。
まとめ
Managed Service for Apache Spark クラスタを使用するか、サーバーレス デプロイを使用するかは、ワークロードの要件、運用の好み、必要な制御レベルによって異なります。
- Managed Service for Apache Spark サーバーレスは、使いやすさ、断続的なワークロードの費用対効果、インフラストラクチャ管理のオーバーヘッドを排除することで新しい Spark アプリケーションの開発を加速できるという利点があります。
- Managed Service for Apache Spark クラスタを選択するのは、最大限の制御が必要な場合、Hadoop または Spark ワークロードを移行する必要がある場合、永続的でカスタマイズされた共有クラスタ環境が必要な場合です。
このセクションに記載されている要因を評価したら、Spark を実行してデータの可能性を最大限に引き出すために、最も効率的で費用対効果の高い Managed Service for Apache Spark デプロイを選択します。