Dataproc Hub の構成


Dataproc Hub はカスタマイズされた JupyterHub サーバーです。管理者は、Jupyter および JupyterLab ノートブック環境をホストするために、シングル ユーザーの Dataproc クラスタを生成できる Dataproc Hub インスタンスを構成し、作成します(Dataproc Hub の使用を参照)。

複数のユーザーがノートブックを起動します。Dataproc が有効になっている Vertex AI Workbench インスタンスを作成するか、VM に Dataproc JupyterLab プラグインをインストールして、複数のユーザーにノートブックを提供できます。

目標

  1. Dataproc クラスタ構成を定義する(または、事前定義された構成ファイルのいずれかを使用する)。

  2. Dataproc Hub インスタンスの環境変数を設定する。

  3. Dataproc Hub インスタンスを作成する

始める前に

Google Cloud プロジェクトと Cloud Storage バケットをまだ作成していない場合は作成します。

  1. プロジェクトの設定

    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. Make sure that billing is enabled for your Google Cloud project.

    4. Enable the Dataproc, Compute Engine, and Cloud Storage APIs.

      Enable the APIs

    5. Install the Google Cloud CLI.
    6. To initialize the gcloud CLI, run the following command:

      gcloud init
    7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    8. Make sure that billing is enabled for your Google Cloud project.

    9. Enable the Dataproc, Compute Engine, and Cloud Storage APIs.

      Enable the APIs

    10. Install the Google Cloud CLI.
    11. To initialize the gcloud CLI, run the following command:

      gcloud init

  2. プロジェクトに Cloud Storage バケットを作成します。作成したバケットには、このチュートリアルで使用するデータを保存します。

    1. In the Google Cloud console, go to the Cloud Storage Buckets page.

      Go to Buckets page

    2. Click Create bucket.
    3. On the Create a bucket page, enter your bucket information. To go to the next step, click Continue.
      • For Name your bucket, enter a name that meets the bucket naming requirements.
      • For Choose where to store your data, do the following:
        • Select a Location type option.
        • Select a Location option.
      • For Choose a default storage class for your data, select a storage class.
      • For Choose how to control access to objects, select an Access control option.
      • For Advanced settings (optional), specify an encryption method, a retention policy, or bucket labels.
    4. Click Create.

クラスタ構成を定義する

Dataproc Hub インスタンスは、YAML クラスタ構成ファイルに含まれる設定値からクラスタを作成します。

クラスタ構成では、Dataproc クラスタで使用できる任意の機能やコンポーネント(マシンタイプ、初期化アクション、オプション コンポーネントなど)を指定できます。クラスタ イメージ バージョンは 1.4.13 以降の必要があります。1.4.13 未満のイメージ バージョンでクラスタを生成しようとすると、エラーが発生し、失敗します。

YAML クラスタ構成ファイルの例

clusterName: cluster-name
config:
  softwareConfig:
    imageVersion: 2.2-ubuntu22
    optionalComponents:
    - JUPYTER

各構成は Cloud Storage に保存される必要があります。複数の構成ファイルを作成して保存すると、ユーザーが いつDataproc Hub を使用して Dataproc クラスタのノートブック環境を作成するかを選択できます。

YAML クラスタ構成ファイルを作成する方法は 2 つあります。:

  1. YAML クラスタ構成ファイルをコンソールから作成する

  2. 既存のクラスタから YAML クラスタ構成ファイルをエクスポートする

YAML クラスタ構成ファイルをコンソールから作成する

  1. Google Cloud コンソールで [クラスタの作成] ページを開き、各フィールドを選択して入力し、Dataproc Hub がユーザーのために生成するクラスタのタイプを指定します。
    1. 左側のパネルの下部にある [同等の REST] を選択します。
    2. 生成された JSON ブロック(先頭の POST リクエスト行を除く)をコピーし、オンラインの JSON to YAML 変換ツールに貼り付けます(オンラインで「Convert JSON to YAML」を検索)。
    3. 変換された YAML をローカルの cluster-config-filename.yaml ファイルにコピーします。

既存のクラスタから YAML クラスタ構成ファイルをエクスポートする

  1. 要件に合わせてクラスタを作成します。
  2. クラスタ構成をローカルの cluster-config-filename.yaml ファイルにエクスポートします。
    gcloud dataproc clusters export cluster-name \
        --destination cluster-config-filename.yaml  \
        --region region
     

YAML 構成ファイルを Cloud Storage に保存する

ローカルの YAML クラスタ構成ファイルを Cloud Storage バケットにコピーします。

gcloud storage cp cluster-config-filename.yaml gs://bucket-name/

Dataproc Hub インスタンスの環境変数を設定する

管理者は、次の表に示すハブ環境変数を設定して、ハブユーザーによって生成される Dataproc クラスタの属性を設定できます。

変数 説明
NOTEBOOKS_LOCATION ユーザーのノートブックを含む Cloud Storage バケットまたはバケット フォルダ。「gs://」接頭辞は省略可能です。デフォルト: Dataproc ステージング バケット gs://bucket-name/
DATAPROC_CONFIGS YAML クラスタ構成ファイルにアクセスするための、Cloud Storage パスの文字列のカンマ区切りリスト。「gs://」接頭辞は省略可能です。デフォルト: gs://dataproc-spawner-dist/example-configs/。これは定義済みの example-cluster.yamlexample-single-node.yaml です。 gs://cluster-config-filename.yaml
DATAPROC_LOCATIONS_LIST Dataproc Hub インスタンスが配置されているリージョンのゾーン接尾辞。ユーザーは、Dataproc クラスタが生成されるゾーンとして、これらのゾーンのいずれかを選択できます。デフォルト: 「b」 b,c,d
DATAPROC_DEFAULT_SUBNET Dataproc Hub インスタンスが Dataproc クラスタを生成するサブネット。 デフォルト: Dataproc Hub インスタンスのサブネット。 https://www.googleapis.com/compute/v1/projects/project-id/regions/region/subnetworks/subnet-name
DATAPROC_SERVICE_ACCOUNT Dataproc VM を実行するサービス アカウントデフォルト: 設定されていない場合、デフォルトの Dataproc サービス アカウントが使用されます。 service-account@project-id.iam.gserviceaccount.com
SPAWNER_DEFAULT_URL デフォルトで、生成された Dataproc クラスタに Jupyter UI または JupyterLab UI を表示するかどうか。 デフォルト: 「/lab」 「/」または「/lab」。Jupyter 用または JupyterLab 用。
DATAPROC_ALLOW_CUSTOM_CLUSTERS Dataproc クラスタのカスタマイズをユーザーに許可するかどうか。 デフォルト: false. 「true」または「false」
DATAPROC_MACHINE_TYPES_LIST クラスタのカスタマイズ(DATAPROC_ALLOW_CUSTOM_CLUSTERS)が有効になっている場合に、ユーザーが生成された Dataproc クラスタに対して選択できるマシンタイプのリスト。 デフォルト: 空(すべてのマシンタイプが許可されます)。 n1-standard-4,n1-standard-8,e2-standard-4,n1-highcpu-4
NOTEBOOKS_EXAMPLES_LOCATION クラスタの起動時に、生成された Dataproc クラスタにダウンロードされるノートブック バケット、またはバケット フォルダへの Cloud Storage パス。 デフォルト: 空。 gs://bucket-name/

ハブ環境変数の設定

ハブ環境変数を設定する方法には以下の 2 つがあります。

  1. コンソールからハブ環境変数を設定する

  2. テキスト ファイルでハブ環境変数を設定する

コンソールからハブ環境変数を設定する

Google Cloud コンソールの Dataproc → ワークベンチユーザー管理のノートブックタブで Dataproc Hub インスタンスを作成する際に、入力ボタンをクリックして Dataproc Hub に入力フォームを開き、各環境変数を設定できます。

テキスト ファイルでハブ環境変数を設定する

  1. ファイルを作成します。テキスト エディタを使用して、ローカル ファイル内に Dataproc Hub インスタンスの環境変数を設定できます。別の方法として、プレースホルダの値を入力して、変数とその値を変更または追加した後で次のコマンドを実行し、ファイルを作成することもできます。

    cat <<EOF > environment-variables-file
    DATAPROC_CONFIGS=gs://bucket/cluster-config-filename.yaml
    NOTEBOOKS_LOCATION=gs://bucket/notebooks
    DATAPROC_LOCATIONS_LIST=b,c
    EOF
    

  2. ファイルを Cloud Storage に保存します。ローカルの Dataproc Hub インスタンスの環境変数ファイルを Cloud Storage バケットにコピーします。

    gcloud storage cp environment-variable-filename gs://bucket-name/folder-name/

Identity and Access Management(IAM)のロールを設定する

Dataproc Hub には、次の機能を備えた ID が含まれます。

  • 管理者: Dataproc Hub インスタンスを作成する
  • データと ML ユーザー: Dataproc Hub UI にアクセスする
  • Dataproc Hub サービス アカウント: Dataproc Hub を表示する
  • Dataproc サービス アカウント: Dataproc Hub が作成する Dataproc クラスタを表します。

各 ID で関連するタスクを実行するには、特定のロールまたは権限が必要です。次の表に、各 ID に必要な IAM ロールと権限を示します。

ID タイプ ロールまたは権限
Dataproc Hub 管理者 ユーザーまたはサービス アカウント roles/notebooks.admin
Dataproc Hub ユーザー ユーザー notebooks.instances.usedataproc.clusters.use
Dataproc Hub サービス アカウント roles/dataproc.hubAgent
Dataproc サービス アカウント roles/dataproc.worker

Dataproc Hub インスタンスを作成する

  1. 始める前に: Google Cloud コンソールから Dataproc Hub インスタンスを作成するには、ユーザー アカウントに compute.instances.create 権限が付与されている必要があります。また、インスタンスのサービス アカウント(Compute Engine のデフォルトのサービス アカウント、または [IAM と管理] > [サービス アカウント] に示されているユーザー指定のサービス アカウント(Dataproc VM サービス アカウントを参照)には、iam.serviceAccounts.actAs 権限が付与されている必要があります。

  2. Google Cloud コンソールで Dataproc → Workbench ページに移動し、[ユーザー管理ノートブック] を選択します。タブ。

  3. フィルタとして事前に選択されていない場合は、[フィルタ] ボックスをクリックして [**Environment:Dataproc Hub"] を選択します。

  4. [新しいノートブック] → [Dataproc Hub] をクリックします。

  5. [ユーザー管理のノートブックの作成] ページで、次の情報を入力します。

    1. [ノートブック名]: Dataproc Hub インスタンス名。
    2. [リージョン]: Dataproc Hub インスタンスのリージョンを選択します。この Dataproc Hub インスタンスによって生成された Dataproc クラスタも、このリージョンに作成されます。
    3. [ゾーン]: 選択したリージョン内のゾーンを選択します。
    4. 環境:
      1. Environment: Dataproc Hub を選択します。
      2. Select a script to run after creation(省略可): 生成された Dataproc クラスタで実行する、初期化アクション スクリプトまたは実行可能ファイルを挿入または参照することもできます。
      3. Populate Dataproc Hub (optional): [入力] をクリックして、各ハブ環境変数を設定するためのフォームを開きます(各変数の説明については、Dataproc Hub インスタンスの環境変数を設定するをご覧ください)。Dataproc では、設定されていない環境変数にはデフォルト値が使用されます。この代替手段として、メタデータkey:value ペアを設定して、環境変数を設定できます(次の項目を参照)。
      4. Metadata:
        1. ハブ環境変数の設定が含まれるテキスト ファイルを作成した場合は(ハブ環境変数の設定を参照)、ファイルの名前を key にし、ファイルの gs://bucket-name/folder-name/environment-variable-filename Cloud Storage ロケーションを value としてください。Dataproc では、設定されていない環境変数にはデフォルト値が使用されます。
    5. [マシンの構成]:
      1. Machine Type: Compute Engine のマシンタイプを選択します。
      2. その他のマシン構成オプションを設定します。
    6. その他の方法:
      1. [ディスク]、[ネットワーキング]、[権限]、[セキュリティ]、[環境のアップグレードとシステムの健全性] のセクションで、デフォルト値の展開と設定または置換を行うことができます。
    7. [作成] をクリックして Dataproc Hub インスタンスを起動します。
  6. インスタンスが作成されると、Dataproc Hub インスタンスの [JupyterLab を開く] リンクが有効になります。ユーザーはこのリンクをクリックして JupyterHub サーバーページを開き、Dataproc JupyterLab クラスタを構成して作成します(Dataproc Hub の使用をご覧ください)。

クリーンアップ

Dataproc Hub インスタンスを削除する

  • Dataproc Hub インスタンスを削除するには:
    gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
    

バケットの削除

  • 始める前にで作成した Cloud Storage バケットを削除する(バケットに保存されているデータファイルを含む)には:
    gcloud storage rm gs://${BUCKET_NAME} --recursive
    

次のステップ