マネージド ノートブックで Serverless for Apache Spark を使用する
このページでは、Google Cloud Serverless for Apache Spark を使用して、Vertex AI Workbench マネージド ノートブック インスタンス内のノートブック ファイルをサーバーレス Spark で実行する方法について説明します。
マネージド ノートブック インスタンスからノートブック ファイルのコードを送信して Serverless for Apache Spark サービスで実行できます。このサービスは、必要に応じてリソースを自動的にスケーリングするマネージド コンピューティング インフラストラクチャでコードを実行します。したがって、独自のクラスタをプロビジョニングして管理する必要はありません。
Serverless for Apache Spark の料金は、ワークロードが実行されている時間に対してのみ適用されます。
要件
Serverless for Apache Spark でノートブック ファイルを実行するには、次の要件を確認してください。
Serverless for Apache Spark セッションは、マネージド ノートブック インスタンスと同じリージョンで実行する必要があります。
「OS Login が必要(
constraints/compute.requireOsLogin)」の制約をプロジェクトで有効にしないでください。組織での OS Login の管理をご覧ください。Serverless for Apache Spark でノートブック ファイルを実行するには、特定の権限を持つサービス アカウントを指定する必要があります。これらの権限をデフォルトのサービス アカウントに付与するか、カスタム サービス アカウントを指定できます。このページの権限に関するセクションをご覧ください。
Serverless for Apache Spark セッションは、Virtual Private Cloud(VPC)ネットワークを使用してワークロードを実行します。VPC サブネットワークは特定の要件を満たす必要があります。Google Cloud Serverless for Apache Spark のネットワーク構成の要件をご覧ください。
権限
Serverless for Apache Spark でノートブック ファイルを実行するために必要な権限がサービス アカウントに付与されるようにするには、プロジェクトに対する Dataproc 編集者(roles/dataproc.editor)IAM ロールをサービス アカウントに付与するよう管理者に依頼してください。
この事前定義ロールには、Serverless for Apache Spark でノートブック ファイルを実行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Serverless for Apache Spark でノートブック ファイルを実行するには、次の権限が必要です。
-
dataproc.agents.create -
dataproc.agents.delete -
dataproc.agents.get -
dataproc.agents.update -
dataproc.session.create -
dataproc.sessions.get -
dataproc.sessions.list -
dataproc.sessions.terminate -
dataproc.sessions.delete -
dataproc.tasks.lease -
dataproc.tasks.listInvalidatedLeases -
dataproc.tasks.reportStatus
これらの権限は、カスタムロールまたは他の事前定義ロールを使用してサービス アカウントに付与することもできます。
始める前に
- 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Notebooks, Vertex AI, and Dataproc APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Notebooks, Vertex AI, and Dataproc APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. - まだ行っていない場合は、Google Cloud Serverless for Apache Spark のネットワーク構成の要件を満たす VPC ネットワークを構成します。
Google Cloud コンソールで、[マネージド ノートブック] ページに移動します。
マネージド ノートブック インスタンス名の横にある [JupyterLab を開く] をクリックします。
マネージド ノートブック インスタンスの JupyterLab インターフェースで、[Launcher] タブを選択してから [Serverless Spark] を選択します。[Launcher] タブが開いていない場合は、[File] > [New Launcher] を選択して開きます。
[Create Serverless Spark session] ダイアログが表示されます。
[Session name] フィールドに、セッションの名前を入力します。
[Execution configuration] セクションで、使用するサービス アカウントを入力します。サービス アカウントを入力しない場合は、Compute Engine のデフォルトのサービス アカウントが使用されます。
[ネットワーク構成] セクションの [ネットワーク] と [サブネットワーク] で、Google Cloud Serverless for Apache Spark のネットワーク構成の要件を満たすネットワークとそのサブネットワークを選択します。
[作成] をクリックします。
新しいノートブック ファイルが開きます。作成した Serverless for Apache Spark セッションが、ノートブック ファイルのコードを実行するカーネルになります。
新しいノートブック ファイルにコードを追加し、コードを実行します。
別のカーネルでコードを実行するには、カーネルを変更します。
再び Serverless for Apache Spark セッションでコードを実行する場合は、カーネルを Serverless for Apache Spark カーネルに戻します。
JupyterLab で、Serverless for Apache Spark セッションの作成時に作成されたノートブック ファイルを閉じます。
表示されたダイアログで [Terminate session] をクリックします。
Google Cloud コンソールで、[Dataproc sessions] ページに移動します。
終了するセッションを選択し、[終了] をクリックします。
Google Cloud コンソールで、[Dataproc sessions] ページに移動します。
削除するセッションを選択し、[削除] をクリックします。
- Serverless for Apache Spark について詳しく学ぶ
JupyterLab を開く
Serverless for Apache Spark セッションを開始する
Serverless for Apache Spark セッションを開始するには、次の手順を行います。
Serverless for Apache Spark またはその他のカーネルでコードを実行する
Serverless for Apache Spark セッションを終了する
Serverless for Apache Spark セッションは、JupyterLab インターフェースまたは Google Cloud コンソールで終了できます。ノートブック ファイル内のコードは保持されます。
JupyterLab
Google Cloud コンソール
Serverless for Apache Spark セッションを削除する
Google Cloud コンソールで Serverless for Apache Spark セッションを削除できます。ノートブック ファイル内のコードは保持されます。