このドキュメントでは、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 ジョブのサーバーレス版です。Spark ジョブなどのコードをサービスに送信します。Managed Service for Apache Spark は、必要なリソースをオンデマンドでプロビジョニングし、ジョブを実行してからリソースを破棄します。クラスタ リソースやジョブリソースを作成または管理する必要はありません。Serverless for Apache Spark が自動的に処理します。
- インタラクティブ セッション: インタラクティブ セッションは、通常、Jupyter ノートブック内での探索的データ分析向けに、ライブのオンデマンド環境を提供します。インタラクティブ セッションは、クラスタとノートブックのリソースをプロビジョニングして管理することなく、クエリの実行やコードの開発に使用できる一時的なサーバーレス ワークスペースの利便性を提供します。
- セッション テンプレート: セッション テンプレートは、インタラクティブ セッションの定義に使用できる再利用可能な構成です。テンプレートには、Spark プロパティやライブラリの依存関係などのセッション設定が含まれています。通常、Jupyter ノートブック内での開発向けに、このテンプレートを使用してインタラクティブ セッション環境を作成します。
クラスタベース モデル
クラスタ上の Managed Service for Apache Spark は、Managed Service for Apache Spark を使用する標準的なインフラストラクチャ中心の方法です。データ処理タスクのための仮想マシンセットを完全に制御できます。
- クラスタ: クラスタは、仮想マシンで構成されたユーザー専用のデータ処理エンジンです。 Google Cloud クラスタを作成して、Apache Spark や Apache Hadoop などのオープンソース フレームワークを実行します。クラスタサイズ、マシンタイプ、構成を完全に制御できます。
- ジョブ: ジョブは、PySpark スクリプトや Hadoop クエリなどの特定のタスクです。クラスタでジョブを直接実行する代わりに、ジョブを Managed Service for Apache Spark に送信します。Managed Service for Apache Spark は、ジョブの実行を管理します。クラスタに複数のジョブを送信できます。
- ワークフロー テンプレート: ワークフロー テンプレートは、一連のジョブ(ワークフロー)をオーケストレートする再利用可能な定義です。ジョブ間の依存関係を定義できます。たとえば、データ クリーニング ジョブが正常に完了した後にのみ ML ジョブを実行するようにできます。テンプレート化されたワークフローは、既存のクラスタまたはワークフローを実行するために作成され、ワークフローの完了後に削除される一時(エフェメラル)クラスタで実行できます。このテンプレートを使用すると、必要に応じて定義されたワークフローを実行できます。
- 自動スケーリング ポリシー: 自動スケーリング ポリシーには、クラスタのワークロードに基づいてクラスタからワーカーマシンを追加または削除するために定義するルールが含まれています。これにより、クラスタの費用とパフォーマンスを動的に最適化できます。
環境のカスタマイズ
クラスタ上の Managed Service for Apache Spark は、アプリケーション環境のカスタマイズに使用できるクラスタ機能とコンポーネントを提供します。
ノートブックと開発環境
Managed Service for Apache Spark のサーバーレス ノートブックと IDE は、コードを記述して実行できる統合開発環境を利用できます。
- BigQuery Studio と Workbench: 統合された分析環境とノートブック環境です。これにより、コード(Jupyter ノートブックなど)を記述し、Managed Service for Apache Spark クラスタまたはサーバーレス セッションを強力なバックエンド エンジンとして使用して、大規模なデータセットでコードを実行できます。
- Managed Service for Apache Spark JupyterLab プラグイン: この公式の
JupyterLabextensionは、ノートブック環境内の Managed Service for Apache Spark サーバーレスのコントロール パネルとして機能します。クラスタの参照、作成、管理、ジョブの送信を Jupyter のインターフェースで行うことができるため、ワークフローが簡素化されます。 - Managed Service for Apache Spark Connect Python コネクタ: この Python ライブラリは、Managed Service for Apache Spark で Spark Connect を使用するプロセスを効率化します。認証とエンドポイント構成を処理するため、ノートブックや IDE などのローカル Python 環境をリモート Managed Service for Apache Spark クラスタに接続してインタラクティブ開発を行うことが簡単になります。
コンテナモデル
Managed Service for Apache Spark on Google Kubernetes Engine は、GKE クラスタに Managed Service for Apache Spark 仮想クラスタをデプロイします。Managed Service for Apache Spark クラスタとは異なり、Managed Service for Apache Spark 仮想クラスタでは、個別のマスター VM とワーカー VM はプロビジョニングされません。代わりに、GKE クラスタ内にノードプールをプロビジョニングします。Managed Service for Apache Spark on GKE ジョブは、こうしたノードプールで Pod として実行されます。ノードプールとノードプール上の Pod のスケジューリングは、Managed Service for Apache Spark on GKE が管理します。