Dataproc Hub の構成

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

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

クラスタ構成を定義する

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] → [ワークベンチ] ページに移動し、[ユーザー管理のノートブック] タブを選択します。

  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 の使用をご覧ください)。