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 で実行されます。
準備
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Cloud Resource Manager, Dataproc, and Notebooks APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Cloud Resource Manager, Dataproc, and Notebooks APIs.
必要なロール
Dataproc Serverless クラスタまたは Dataproc クラスタでノートブック ファイルを実行するために必要な権限がサービス アカウントに付与されるように、サービス アカウントに次の IAM ロールを付与するように管理者に依頼してください。
- プロジェクトに対する Dataproc ワーカー (
roles/dataproc.worker
) -
dataproc.clusters.use
権限のクラスタに対する Dataproc 編集者 (roles/dataproc.editor
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、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 インスタンスを作成するには、次の操作を行います。
Google Cloud コンソールで、[インスタンス] ページに移動します。
[
新規作成] をクリックします。[新しいインスタンス] ダイアログで、[詳細オプション] をクリックします。
[インスタンスを作成] ダイアログの [詳細] セクションで、[Dataproc Serverless インタラクティブ セッションを有効にする] が選択されていることを確認します。
[Workbench のタイプ] が [インスタンス] に設定されていることを確認します。
[環境] セクションで、最新バージョンまたは
M113
以上のバージョン番号を使用していることを確認します。[作成] をクリックします。
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 つのカードが表示されます。
リージョンとプロジェクトを変更するには、次の操作を行います。
[Settings] > [Cloud Dataproc Settings] を選択します。
[Setup Config] タブの [Project Info] で、[Project ID] と [Region] を変更して、[Save] をクリックします。
これらの変更は、JupyterLab を再起動するまで有効になりません。
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 コマンドが失敗した場合は、次の点を確認します。
DNS エントリが正しく構成されている。
同じプロジェクトで使用可能なクラスタがある(存在しない場合は作成する必要があります)。
クラスタで コンポーネント ゲートウェイと オプションの 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 コマンドをご覧ください。
トラブルシューティング
Dataproc が有効なインスタンスの作成に関連する問題を診断して解決するには、Vertex AI Workbench のトラブルシューティングをご覧ください。
次のステップ
Dataproc JupyterLab プラグインの詳細については、サーバーレスのバッチ セッションとインタラクティブ ノートブック セッションで JupyterLab を使用するをご覧ください。
サーバーレス Spark の詳細を確認する。Dataproc サーバーレスのドキュメントをご覧ください。
Google Cloud のプロダクトやサービスで Spark を使用する方法を確認する。Google Cloud での Spark をご覧ください。
GitHub の
serverless-spark-workshop
でサーバーレス Spark について確認する。