Managed Service for Apache Spark に、以前の「Compute Engine 上の Dataproc」(クラスタ デプロイ)と以前の「Google Cloud Apache Spark 向け 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 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 ジョブ アズ ア サービスを提供します。ジョブの実行時間に応じて料金が発生します。
- クラスタ デプロイ: Compute Engine インフラストラクチャでマネージド Spark を実行する Spark クラスタ アズ ア サービスを提供します。クラスタの稼働時間に応じて料金が発生します。
これらの違いにより、Managed Service for Apache Spark の各デプロイは、次のユースケースに最適です。
| デプロイ | ユースケース |
|---|---|
| サーバーレス | さまざまな専用ジョブ環境 スケジュールされたバッチ ワークロード インフラストラクチャ管理よりもコード管理を優先する |
| クラスタ | 長時間稼働する共有環境 インフラストラクチャをきめ細かく制御する必要があるワークロード レガシー Hadoop 環境と Spark 環境の移行 |
主な違い
| 機能 | サーバーレス デプロイ | クラスタ デプロイ |
|---|---|---|
| 管理モデル | フルマネージドでサーバーレスの実行環境。 | クラスタベース。クラスタをプロビジョニングして管理します。 |
| 制御とカスタマイズ | インフラストラクチャの制御が少なく、コードの送信と Spark パラメータの指定に重点を置いています。 | クラスタ構成、マシンタイプ、ソフトウェアをより細かく制御できます。スポット 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 ジョブと永続クラスタをサポートします。
- 多様なオープンソース エコシステム: Hadoop エコシステム ツール(Hive、Pig、Presto など)を実行するデータ処理パイプラインを、Spark ワークロードとともに実行するための統合環境を提供します。
- セキュリティ コンプライアンス: インフラストラクチャを制御して、個人情報(PII)や保護対象保健情報(PHI)の保護など、特定のセキュリティまたはコンプライアンス基準を満たすことができます。
- インフラストラクチャの柔軟性: Spot VM を提供し、予約と Compute Engine リソース容量を再利用してリソース使用量のバランスを取り、クラウド インフラストラクチャ戦略を促進できます。
まとめ
Managed Service for Apache Spark クラスタ デプロイとサーバーレス デプロイのどちらを使用するかは、ワークロードの要件、運用上の設定、必要な制御レベルによって異なります。
- 使いやすさ、断続的なワークロードの費用対効果、インフラストラクチャ管理のオーバーヘッドを排除することで新しい Spark アプリケーションの開発を加速できるため、Managed Service for Apache Spark サーバーレス を選択します。
- 最大限の制御が必要な場合、Hadoop ワークロードまたは Spark ワークロードを移行する必要がある場合、永続的でカスタマイズされた共有クラスタ環境が必要な場合は、Managed Service for Apache Spark クラスタ を選択します。
このセクションで説明した要素を評価したら、最も効率的で費用対効果の高い Managed Service for Apache Spark デプロイを選択して Spark を実行し、データの潜在能力を最大限に引き出します。