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 JupyterLab プラグインは VPC Service Controls をサポートしていません。

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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Cloud Resource Manager, Dataproc, and Notebooks APIs.

    Enable the APIs

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Enable the Cloud Resource Manager, Dataproc, and Notebooks APIs.

    Enable the APIs

必要なロール

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 Serverless インタラクティブ セッションを有効にする] が選択されていることを確認します。

  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 と API を使用してインスタンスで Dataproc を管理する

このセクションでは、Vertex AI Workbench インスタンスで Dataproc を管理する方法について説明します。

Dataproc クラスタのリージョンを変更する

Vertex AI Workbench インスタンスのデフォルト カーネル(Python や TensorFlow など)は、インスタンスの VM で実行されるローカル カーネルです。Dataproc 対応の Vertex AI Workbench インスタンスでは、ノートブックはリモート カーネルを介して Dataproc クラスタで実行されます。リモート カーネルはインスタンスの VM 外の Service で実行されるため、同じプロジェクト内の任意の Dataproc クラスタにアクセスできます。

デフォルトでは、Vertex AI Workbench はインスタンスと同じリージョン内の Dataproc クラスタを使用しますが、Dataproc クラスタでコンポーネント ゲートウェイオプションの Jupyter コンポーネントが有効になっている限り、Dataproc リージョンを変更できます。

  • インスタンスの VM のリージョンを変更するには、次のコマンドを使用します。

    gcloud config set compute/region REGION

    REGION は、目的のリージョン(us-east4 など)に置き換えます。

  • Dataproc クラスタのリージョンを変更するには、次のコマンドを使用します。

    gcloud config set dataproc/region REGION

    REGION は、目的のリージョン(us-east4 など)に置き換えます。

テストアクセス

Dataproc JupyterLab プラグインは、Vertex AI Workbench インスタンスでデフォルトで有効になっています。Dataproc へのアクセスをテストするには、次の curl リクエストを kernels.googleusercontent.com ドメインに送信して、インスタンスのリモート カーネルへのアクセスを確認します。

curl --verbose -H "Authorization: Bearer $(gcloud auth print-access-token)" https://PROJECT_ID-dot-REGION.kernels.googleusercontent.com/api/kernelspecs | jq .

curl コマンドが失敗した場合は、次の点を確認します。

  1. DNS エントリが正しく構成されている。

  2. 同じプロジェクトで使用可能なクラスタがある(存在しない場合は作成する必要があります)。

  3. クラスタで コンポーネント ゲートウェイオプションの Jupyter コンポーネントの両方が有効になっている。

Dataproc を無効にする

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

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

Dataproc を有効にする

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

gcloud workbench instances update 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 = "cloud-notebooks-managed"
      family  = "workbench-instances"
    }
    metadata = {
      disable-mixer = "false"
    }
  }
}

トラブルシューティング

Dataproc が有効なインスタンスの作成に関連する問題を診断して解決するには、Vertex AI Workbench のトラブルシューティングをご覧ください。

次のステップ