マネージド ノートブックで Serverless for Apache Spark を使用する

このページでは、Google Cloud Serverless for Apache Spark を使用して、Vertex AI Workbench マネージド ノートブック インスタンスのサーバーレス Spark でノートブック ファイルを実行する方法について説明します。

マネージド ノートブック インスタンスは、Serverless for Apache Spark サービスで実行するノートブック ファイルのコードを送信できます。このサービスは、必要に応じてリソースを自動的にスケーリングするマネージド コンピューティング インフラストラクチャでコードを実行します。したがって、独自のクラスタをプロビジョニングして管理する必要はありません。

Apache Spark 用サーバーレスの料金は、ワークロードが実行されている時間に対してのみ適用されます。

要件

Apache Spark 用サーバーレスでノートブック ファイルを実行するには、次の要件をご覧ください。

  • Apache Spark 用サーバーレス セッションは、マネージド ノートブック インスタンスと同じリージョンで実行する必要があります。

  • 「OS Login が必要(constraints/compute.requireOsLogin)」の制約をプロジェクトで有効にしないでください。組織での OS Login の管理をご覧ください。

  • Apache Spark 用サーバーレスでノートブック ファイルを実行するには、特定の権限を持つサービス アカウントを指定する必要があります。これらの権限をデフォルトのサービス アカウントに付与するか、カスタム サービス アカウントを指定できます。このページの権限に関するセクションをご覧ください。

  • Serverless for Apache Spark セッションでは、Virtual Private Cloud(VPC)ネットワークを使用してワークロードを実行します。VPC サブネットワークは特定の要件を満たす必要があります。Google Cloud Apache Spark 用サーバーレスの Spark ネットワーク構成の要件をご覧ください。

権限

Serverless for Apache Spark でノートブック ファイルを実行するために必要な権限がサービス アカウントに付与されるように、サービス アカウントにプロジェクトに対する Dataproc 編集者 roles/dataproc.editor)IAM ロールを付与するように管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

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

必要な権限

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

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

始める前に

  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.

    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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. まだ行っていない場合は、Google Cloud Apache Spark 用サーバーレス ネットワーク構成に記載されている要件を満たす VPC ネットワークを構成します。
  9. JupyterLab を開く

    1. Google Cloud コンソールで、[マネージド ノートブック] ページに移動します。

      [マネージド ノートブック] に移動

    2. マネージド ノートブック インスタンス名の横にある [JupyterLab を開く] をクリックします。

    Apache Spark 向け Serverless セッションを開始する

    Apache Spark 向け Serverless セッションを開始するには、次の手順を行います。

    1. マネージド ノートブック インスタンスの JupyterLab インターフェースで、[Launcher] タブを選択してから [Serverless Spark] を選択します。[Launcher] タブが開いていない場合は、[File] > [New Launcher] を選択して開きます。

      [Create Serverless Spark session] ダイアログが表示されます。

    2. [Session name] フィールドに、セッションの名前を入力します。

    3. [Execution configuration] セクションで、使用するサービス アカウントを入力します。サービス アカウントを入力しない場合、セッションでは Compute Engine のデフォルトのサービス アカウントが使用されます。

    4. [ネットワーク構成] セクションの [ネットワーク] と [サブネットワーク] で、Apache Spark 用Google Cloud Serverless ネットワーク構成に記載されている要件を満たすネットワークを選択します。

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

      新しいノートブック ファイルが開きます。作成した Apache Spark 用サーバーレス セッションが、ノートブック ファイルのコードを実行するカーネルになります。

    Apache Spark 向け Serverless またはその他のカーネルでコードを実行する

    1. 新しいノートブック ファイルにコードを追加し、コードを実行します。

    2. 別のカーネルでコードを実行するには、カーネルを変更します。

    3. Apache Spark 用サーバーレス セッションでコードを再度実行する場合は、カーネルを Apache Spark 用サーバーレス カーネルに戻します。

    Apache Spark 向け Serverless セッションを終了する

    Serverless for Apache Spark セッションは、JupyterLab インターフェースまたは Google Cloud コンソールで終了できます。ノートブック ファイル内のコードは保持されます。

    JupyterLab

    1. JupyterLab で、Serverless for Apache Spark セッションの作成時に作成されたノートブック ファイルを閉じます。

    2. 表示されたダイアログで [Terminate session] をクリックします。

    Google Cloud コンソール

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

      Dataproc セッションに移動

    2. 終了するセッションを選択し、[終了] をクリックします。

    Apache Spark 向け Serverless セッションを削除する

    Google Cloud コンソールで Apache Spark 向け Serverless セッションを削除できます。ノートブック ファイル内のコードは保持されます。

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

      Dataproc セッションに移動

    2. 削除するセッションを選択し、[削除] をクリックします。

    次のステップ