Dataproc を最大限に活用できるよう、基本的な構成要素を理解しておくと便利です。このガイドでは、Dataproc のコアコンセプトと機能、およびこれらの機能が提供するメリットについて説明します。
クラスタベースのモデル
これは、インフラストラクチャを中心とした Dataproc の標準的な使用方法です。データ処理タスクのための仮想マシンセットを完全に制御できます。
- クラスタ: クラスタは、仮想マシンで構成されたユーザー専用のデータ処理エンジンです。 Google Cloud クラスタを作成して、Apache Spark や Apache Hadoop などのオープンソース フレームワークを実行します。クラスタサイズ、マシンタイプ、構成を完全に制御できます。
- ジョブ: ジョブは、PySpark スクリプトや Hadoop クエリなどの特定のタスクです。クラスタでジョブを直接実行する代わりに、ジョブを Dataproc サービスに送信します。Dataproc サービスは、ジョブの実行を管理します。クラスタに複数のジョブを送信できます。
- ワークフロー テンプレート: ワークフロー テンプレートは、一連のジョブ(ワークフロー)をオーケストレートする再利用可能な定義です。ジョブ間の依存関係を定義できます。たとえば、データ クリーニング ジョブが正常に完了した後にのみ ML ジョブを実行するようにできます。テンプレート化されたワークフローは、既存のクラスタまたはワークフローを実行するために作成され、ワークフローの完了後に削除される一時(エフェメラル)クラスタで実行できます。このテンプレートを使用すると、必要に応じて定義されたワークフローを実行できます。
- 自動スケーリング ポリシー: 自動スケーリング ポリシーには、クラスタのワークロードに基づいてクラスタからワーカーマシンを追加または削除するために定義するルールが含まれています。これにより、クラスタの費用とパフォーマンスを動的に最適化できます。
サーバーレス モデル
Serverless for Apache Spark は、最新の自動実行 Dataproc モデルです。基盤となるインフラストラクチャのプロビジョニング、管理、スケーリングを行うことなくジョブを実行できます。詳細は Serverless for Apache Spark が処理します。
- バッチ: バッチ(バッチ ワークロードとも呼ばれます)は、Dataproc ジョブのサーバーレス版です。Spark ジョブなどのコードをサービスに送信します。Serverless for Apache Spark は、必要なリソースをオンデマンドでプロビジョニングし、ジョブを実行してからリソースを破棄します。クラスタ リソースやジョブリソースを作成または管理する必要はありません。Serverless for Apache Spark が自動的に処理します。
- インタラクティブ セッション: インタラクティブ セッションは、通常、Jupyter ノートブック内での探索的データ分析向けに、ライブのオンデマンド環境を提供します。インタラクティブ セッションは、クラスタとノートブックのリソースをプロビジョニングして管理することなく、クエリの実行やコードの開発に使用できる一時的なサーバーレス ワークスペースの利便性を提供します。
- セッション テンプレート: セッション テンプレートは、インタラクティブ セッションの定義に使用できる再利用可能な構成です。テンプレートには、Spark プロパティやライブラリの依存関係などのセッション設定が含まれています。通常、Jupyter ノートブック内での開発向けに、このテンプレートを使用してインタラクティブ セッション環境を作成します。
metastore サービス
Dataproc は、データに関するデータであるメタデータを処理するためのマネージド サービスを提供します。
- metastore: metastore は、テーブル名、列名、データ型などのデータスキーマの中央カタログとして機能します。metastore を使用すると、さまざまなサービス、クラスタ、ジョブでデータの構造を理解できます。通常、カタログは Cloud Storage に保存されます。
- 連携: メタデータ連携は、単一の統合 metastore にアクセスしているかのように複数の metastore からのデータにアクセスしてクエリを実行できる高度な機能です。
ノートブックと開発環境
Dataproc ノートブックと IDE は、コードを記述して実行できる統合開発環境を利用できます。
- BigQuery Studio と Workbench: 統合された分析環境とノートブック環境です。これにより、コード(Jupyter ノートブックなど)を記述し、Dataproc クラスタまたはサーバーレス セッションを強力なバックエンド エンジンとして使用して、大規模なデータセットでコードを実行できます。
- Dataproc JupyterLab プラグイン: この公式の JupyterLab 拡張機能は、ノートブック環境内の Dataproc のコントロール パネルとして機能します。クラスタの参照、作成、管理、ジョブの送信を Jupyter のインターフェースで行うことができるため、ワークフローが簡素化されます。詳細
- Dataproc Spark Connect Python コネクタ: この Python ライブラリは、Dataproc で Spark Connect を使用するプロセスを効率化します。認証とエンドポイント構成を処理するため、ノートブックや IDE などのローカル Python 環境をリモート Dataproc クラスタに接続してインタラクティブ開発を行うことが簡単になります。詳細
環境のカスタマイズ
Dataproc には、特定のニーズに合わせて環境をカスタマイズするためのツールとコンポーネントが用意されています。 Google Cloud コンソールの [ユーティリティ] セクションには、Dataproc 環境のカスタマイズに役立つツールが含まれています。