Dataproc が有効になっているインスタンスを作成する

このページでは、Dataproc が有効になっている Vertex AI Workbench インスタンスを作成する方法について説明します。このページでは、Dataproc JupyterLab プラグインの利点について説明します。また、プラグインを Dataproc Serverless for Spark と Compute Engine の Dataproc で使用する方法についても説明します。

Dataproc JupyterLab プラグインの概要

バージョン M113 以降の Vertex AI Workbench インスタンスには、Dataproc JupyterLab プラグインがプリインストールされています。

Dataproc JupyterLab プラグインで Apache Spark ノートブック ジョブを実行する方法は 2 つあります。1 つは Dataproc クラスタを使用する方法、もう 1 つは Dataproc でサーバーレス Spark を使用する方法です。

  • Dataproc クラスタには豊富な機能があり、Spark が実行されるインフラストラクチャを制御できます。Spark クラスタのサイズと構成を選択することで環境のカスタマイズと制御を行うことができます。この方法は、複雑なワークロード、長時間実行ジョブ、きめ細かいリソース管理に最適です。
  • Dataproc でサーバーレス Spark を使用する場合、インフラストラクチャを気にする必要はありません。Spark ジョブを送信すると、Google がリソースのプロビジョニング、スケーリング、最適化をバックグラウンドで処理します。データ サイエンスや ML のワークロードでは、このサーバーレス アプローチは簡単で費用対効果の高い選択肢となります。

どちらの方法でも、Spark をデータ処理と分析に使用できます。Dataproc クラスタとサーバーレス Spark のどちらを選択するかは、ワークロードの要件、必要な制御レベル、リソースの使用パターンによって異なります。

データ サイエンスと ML のワークロードにサーバーレス Spark を使用するメリットは次のとおりです。

  • クラスタ管理が不要: Spark クラスタのプロビジョニング、構成、管理について心配する必要はありません。時間とリソースを節約できます。
  • 自動スケーリング: サーバーレス Spark はワークロードに応じて自動的にスケールアップまたはスケールダウンを行うので、使用したリソースに対してのみ料金が発生します。
  • 高パフォーマンス: サーバーレス Spark はパフォーマンスを重視して最適化され、Google Cloud のインフラストラクチャを活用します。
  • 他の Google Cloud テクノロジーとの統合: サーバーレス Spark は、BigQuery や Dataplex などの他の Google Cloud プロダクトと統合されます。

詳細については、Dataproc サーバーレスのドキュメントをご覧ください。

Dataproc の制限事項と考慮事項

  • Spark ジョブは、送信するユーザーの ID ではなく、サービス アカウント ID で実行されます。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Cloud Resource Manager, Dataproc, and Notebooks API を有効にします。

    API を有効にする

  4. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  5. Cloud Resource Manager, Dataproc, and Notebooks API を有効にします。

    API を有効にする

必要なロール

Dataproc Serverless クラスタまたは Dataproc クラスタでノートブック ファイルを実行するために必要な権限がサービス アカウントに付与されるように、サービス アカウントに次の IAM ロールを付与するように管理者に依頼してください。

ロールの付与の詳細については、アクセスの管理をご覧ください。

これらの事前定義ロールには、Dataproc Serverless クラスタまたは Dataproc クラスタでノートブック ファイルを実行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

Dataproc Serverless クラスタまたは Dataproc クラスタでノートブック ファイルを実行するには、次の権限が必要です。

  • dataproc.agents.create
  • dataproc.agents.delete
  • dataproc.agents.get
  • dataproc.agents.update
  • dataproc.tasks.lease
  • dataproc.tasks.listInvalidatedLeases
  • dataproc.tasks.reportStatus
  • dataproc.clusters.use

管理者は、サービス アカウントに、カスタムロールや他の事前定義ロールを付与することもできます。

Dataproc を有効にしてインスタンスを作成する

Dataproc を有効にして Vertex AI Workbench インスタンスを作成するには、次の操作を行います。

  1. Google Cloud コンソールで、[インスタンス] ページに移動します。

    [インスタンス] に移動

  2. [新規作成] をクリックします。

  3. [新しいインスタンス] ダイアログで、[詳細オプション] をクリックします。

  4. [インスタンスを作成] ダイアログの [詳細] セクションで、[Dataproc を有効にする] が選択されていることを確認します。

  5. [Workbench のタイプ] が [インスタンス] に設定されていることを確認します。

  6. [環境] セクションで、最新バージョンまたは M113 以上のバージョン番号を使用していることを確認します。

  7. [作成] をクリックします。

    Vertex AI Workbench がインスタンスを作成し、自動的に起動します。インスタンスを使用する準備が整うと、Vertex AI Workbench で [JupyterLab を開く] が有効になります。

JupyterLab を開く

インスタンス名の横にある [JupyterLab を開く] をクリックします。

ブラウザで JupyterLab の [Launcher] タブが開きます。デフォルトでは、[Dataproc Serverless Notebooks] と [Dataproc Jobs and Sessions] のセクションが表示されます。選択したプロジェクトとリージョンに Jupyter 対応クラスタがある場合は、[Dataproc Cluster Notebooks] というセクションが表示されます。

Dataproc Serverless for Spark でプラグインを使用する

Vertex AI Workbench インスタンスと同じリージョンおよびプロジェクトにあるサーバーレス Spark ランタイム テンプレートが、JupyterLab の [Launcher] タブの [Dataproc Serverless Notebooks] セクションに表示されます。

ランタイム テンプレートを作成するには、Dataproc サーバーレス ランタイム テンプレートを作成するをご覧ください。

新しいサーバーレス Spark ノートブックを開くには、ランタイム テンプレートをクリックします。リモート Spark カーネルが起動するまでに 1 分ほどかかります。カーネルが起動したら、コーディングを始めることができます。サーバーレス Spark でコードを実行するには、ノートブックでコードセルを実行します。

Compute Engine 上の Dataproc でプラグインを使用する

Compute Engine に Dataproc Jupyter クラスタを作成した場合、[Launcher] タブに [Dataproc Cluster Notebooks] セクションが表示されます。

そのリージョンとプロジェクトでアクセス可能な Jupyter 対応 Dataproc クラスタごとに、4 つのカードが表示されます。

リージョンとプロジェクトを変更するには、次の操作を行います。

  1. [Settings] > [Cloud Dataproc Settings] を選択します。

  2. [Setup Config] タブの [Project Info] で、[Project ID] と [Region] を変更して、[Save] をクリックします。

    これらの変更は、JupyterLab を再起動するまで有効になりません。

  3. JupyterLab を再起動するには、[File] > [Shut Down] を選択して、Vertex AI Workbench の [インスタンス] ページで [JupyterLab を開く] をクリックします。

新しいノートブックを作成するには、カードをクリックします。Dataproc クラスタのリモート カーネルが起動したら、コードの記述を開始し、作成したコードをクラスタで実行できます。

gcloud CLI を使用して Vertex AI Workbench インスタンスで Dataproc を管理する

Vertex AI Workbench インスタンスは、デフォルトで Dataproc を有効にして作成されます。disable-mixer metadata キーを true に設定すると、Dataproc を無効にして Vertex AI Workbench インスタンスを作成できます。

gcloud workbench instances create INSTANCE_NAME --metadata=disable-mixer=true

メタデータ値を更新することで、停止した Vertex AI Workbench インスタンスで Dataproc を有効にできます。

gcloud workbench instances create INSTANCE_NAME --metadata=disable-mixer=false

Terraform を使用して Dataproc を管理する

Terraform では Vertex AI Workbench インスタンスの Dataproc は、メタデータ フィールドの disable-mixer キーを使用して管理されます。disable-mixer metadata キーを false に設定して、Dataproc を有効にします。disable-mixer メタデータキーを true に設定して、Dataproc を無効にします。

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

resource "google_workbench_instance" "default" {
  name     = "workbench-instance-example"
  location = "us-central1-a"

  gce_setup {
    machine_type = "n1-standard-1"
    vm_image {
      project = "deeplearning-platform-release"
      family  = "tf-latest-gpu"
    }
    metadata = {
      disable-mixer = "false"
    }
  }
}

次のステップ