Configurazione di Dataproc Hub


Dataproc Hub è un server JupyterHub personalizzato. Gli amministratori configurano e creano istanze Dataproc Hub che possono generare cluster Dataproc monoutente per ospitare ambienti notebook Jupyter e JupyterLab (vedi Utilizzare Dataproc Hub).

Avviare Notebook per più utenti. Puoi creare un'istanza di Vertex AI Workbench abilitata per Dataproc o installare il plug-in Dataproc JupyterLab su una VM per pubblicare notebook per più utenti.

Obiettivi

  1. Definisci una configurazione del cluster Dataproc (o utilizza uno dei file di configurazione predefiniti).

  2. Imposta le variabili di ambiente dell'istanza Dataproc Hub.

  3. Crea un'istanza Dataproc Hub.

Prima di iniziare

Se non l'hai ancora fatto, crea un progetto Google Cloud e un bucket Cloud Storage.

  1. Configurazione del progetto

    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. Verify 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. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

    7. Per inizializzare gcloud CLI, esegui questo comando:

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

      Go to project selector

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

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

      Enable the APIs

    11. Install the Google Cloud CLI.

    12. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

    13. Per inizializzare gcloud CLI, esegui questo comando:

      gcloud init
    14. Creazione di un bucket Cloud Storage nel tuo progetto per contenere i dati utilizzati in questo tutorial.

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

        Go to Buckets

      2. Click Create.
      3. On the Create a bucket page, enter your bucket information. To go to the next step, click Continue.
        1. In the Get started section, do the following:
          • Enter a globally unique name that meets the bucket naming requirements.
          • To add a bucket label, expand the Labels section (), click Add label, and specify a key and a value for your label.
        2. In the Choose where to store your data section, do the following:
          1. Select a Location type.
          2. Choose a location where your bucket's data is permanently stored from the Location type drop-down menu.
          3. To set up cross-bucket replication, select Add cross-bucket replication via Storage Transfer Service and follow these steps:

            Set up cross-bucket replication

            1. In the Bucket menu, select a bucket.
            2. In the Replication settings section, click Configure to configure settings for the replication job.

              The Configure cross-bucket replication pane appears.

              • To filter objects to replicate by object name prefix, enter a prefix that you want to include or exclude objects from, then click Add a prefix.
              • To set a storage class for the replicated objects, select a storage class from the Storage class menu. If you skip this step, the replicated objects will use the destination bucket's storage class by default.
              • Click Done.
        3. In the Choose how to store your data section, do the following:
          1. Select a default storage class for the bucket or Autoclass for automatic storage class management of your bucket's data.
          2. To enable hierarchical namespace, in the Optimize storage for data-intensive workloads section, select Enable hierarchical namespace on this bucket.
        4. In the Choose how to control access to objects section, select whether or not your bucket enforces public access prevention, and select an access control method for your bucket's objects.
        5. In the Choose how to protect object data section, do the following:
          • Select any of the options under Data protection that you want to set for your bucket.
            • To enable soft delete, click the Soft delete policy (For data recovery) checkbox, and specify the number of days you want to retain objects after deletion.
            • To set Object Versioning, click the Object versioning (For version control) checkbox, and specify the maximum number of versions per object and the number of days after which the noncurrent versions expire.
            • To enable the retention policy on objects and buckets, click the Retention (For compliance) checkbox, and then do the following:
              • To enable Object Retention Lock, click the Enable object retention checkbox.
              • To enable Bucket Lock, click the Set bucket retention policy checkbox, and choose a unit of time and a length of time for your retention period.
          • To choose how your object data will be encrypted, expand the Data encryption section (), and select a Data encryption method.
      4. Click Create.

    15. Definisci una configurazione del cluster

      Un'istanza di Dataproc Hub crea un cluster dai valori di configurazione contenuti in un file di configurazione del cluster YAML.

      La configurazione del cluster può specificare qualsiasi funzionalità o componente disponibile per i cluster Dataproc (come il tipo di macchina, le azioni di inizializzazione e i componenti opzionali). La versione dell'immagine del cluster deve essere 1.4.13 o successive. Il tentativo di creare un cluster con una versione dell'immagine precedente alla 1.4.13 causerà un errore e non andrà a buon fine.

      File di configurazione del cluster YAML di esempio

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

      Ogni configurazione deve essere salvata in Cloud Storage. Puoi creare e salvare più file di configurazione per offrire agli utenti una scelta quando utilizzano Dataproc Hub per creare il proprio ambiente notebook del cluster Dataproc.

      Esistono due modi per creare un file di configurazione del cluster YAML:

      1. Crea il file di configurazione del cluster YAML dalla console

      2. Esportare un file di configurazione del cluster YAML da un cluster esistente

      Crea il file di configurazione del cluster YAML dalla console

      1. Apri la pagina Crea un cluster nella console Google Cloud , quindi seleziona e compila i campi per specificare il tipo di cluster che Dataproc Hub genererà per gli utenti.
        1. In fondo al riquadro a sinistra, seleziona "REST equivalente".
        2. Copia il blocco JSON generato, escludendo la riga della richiesta POST iniziale, quindi incollalo in un convertitore online da JSON a YAML (cerca online "Converti JSON in YAML").
        3. Copia il file YAML convertito in un file cluster-config-filename.yaml locale.

      Esportare un file di configurazione del cluster YAML da un cluster esistente

      1. Crea un cluster che soddisfi i tuoi requisiti.
      2. Esporta la configurazione del cluster in un file cluster-config-filename.yaml locale.
        gcloud dataproc clusters export cluster-name \
            --destination cluster-config-filename.yaml  \
            --region region
         

      Salva il file di configurazione YAML in Cloud Storage

      Copia il file di configurazione del cluster YAML locale nel tuo bucket Cloud Storage.

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

      Imposta le variabili di ambiente dell'istanza Dataproc Hub

      L'amministratore può impostare le variabili di ambiente dell'hub elencate nella tabella seguente per impostare gli attributi dei cluster Dataproc che verranno generati dagli utenti dell'hub.

      Variabile Descrizione Esempio
      NOTEBOOKS_LOCATION Bucket o cartella bucket Cloud Storage contenente i notebook dell'utente. Il prefisso `gs://` è facoltativo. Predefinito:il bucket di gestione temporanea di Dataproc. gs://bucket-name/
      DATAPROC_CONFIGS Elenco delimitato da virgole contenente le stringhe dei percorsi Cloud Storage dei file YAML di configurazione del cluster. Il prefisso `gs://` è facoltativo. Predefinito: gs://dataproc-spawner-dist/example-configs/. che contiene example-cluster.yaml e example-single-node.yaml predefiniti. gs://cluster-config-filename.yaml
      DATAPROC_LOCATIONS_LIST I suffissi di zona nella regione in cui si trova l'istanza Dataproc Hub. Gli utenti possono selezionare una di queste zone come zona in cui verrà generato il cluster Dataproc. Valore predefinito: "b". b,c,d
      DATAPROC_DEFAULT_SUBNET Subnet su cui l'istanza Dataproc Hub genera cluster Dataproc. Predefinito:la subnet dell'istanza Dataproc Hub. https://www.googleapis.com/compute/v1/projects/project-id/regions/region/subnetworks/subnet-name
      DATAPROC_SERVICE_ACCOUNT Service account con cui verranno eseguite le VM Dataproc. Predefinito:se non impostato, viene utilizzato l'account di servizio Dataproc predefinito. service-account@project-id.iam.gserviceaccount.com
      SPAWNER_DEFAULT_URL Specifica se visualizzare la UI Jupyter o JupyterLab sui cluster Dataproc generati per impostazione predefinita. Valore predefinito: "/lab". `/` o `/lab`, rispettivamente per Jupyter o JupyterLab.
      DATAPROC_ALLOW_CUSTOM_CLUSTERS Specifica se consentire agli utenti di personalizzare i cluster Dataproc. Valore predefinito: false. "true" o "false"
      DATAPROC_MACHINE_TYPES_LIST Elenco dei tipi di macchina tra cui gli utenti possono scegliere per i propri cluster Dataproc generati, se la personalizzazione del cluster (DATAPROC_ALLOW_CUSTOM_CLUSTERS) è abilitata. Predefinito:vuoto (sono consentiti tutti i tipi di macchine). n1-standard-4,n1-standard-8,e2-standard-4,n1-highcpu-4
      NOTEBOOKS_EXAMPLES_LOCATION Percorso Cloud Storage del bucket o della cartella bucket dei notebook da scaricare nel cluster Dataproc generato all'avvio del cluster. Predefinito:vuoto. gs://bucket-name/

      Impostazione delle variabili di ambiente dell'hub

      Esistono due modi per impostare le variabili di ambiente dell'hub:

      1. Impostare le variabili di ambiente dell'hub dalla console

      2. Impostare le variabili di ambiente dell'hub in un file di testo

      Imposta le variabili di ambiente dell'hub dalla console

      Quando crei un'istanza Dataproc Hub dalla scheda Blocchi note gestiti dall'utente nella pagina Dataproc→Workbench nella console Google Cloud , puoi fare clic sul pulsante Compila per aprire un modulo Compila Dataproc Hub che ti consente di impostare ogni variabile di ambiente.

      Imposta le variabili di ambiente dell'hub in un file di testo

      1. Crea il file. Puoi utilizzare un editor di testo per impostare le variabili di ambiente dell'istanza Dataproc Hub in un file locale. In alternativa, puoi creare il file eseguendo il seguente comando dopo aver compilato i valori segnaposto e modificato o aggiunto le variabili e i relativi valori.

        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. Salva il file in Cloud Storage. Copia il file delle variabili di ambiente dell'istanza Dataproc Hub locale nel bucket Cloud Storage.

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

      Impostare i ruoli IAM (Identity and Access Management)

      Dataproc Hub include le seguenti identità con le seguenti funzionalità:

      • Amministratore: crea un'istanza Dataproc Hub
      • Utente di dati e ML: accede all'interfaccia utente di Dataproc Hub
      • Account di servizio Dataproc Hub: rappresenta Dataproc Hub
      • Account di servizio Dataproc: rappresenta il cluster Dataproc creato da Dataproc Hub.

      Ogni identità richiede ruoli o autorizzazioni specifici per svolgere le attività associate. La tabella seguente riassume i ruoli e le autorizzazioni IAM richiesti da ciascuna identità.

      Identità Tipo Ruolo o autorizzazione
      Amministratore Dataproc Hub Account utente o di servizio roles/notebooks.admin
      Utente Dataproc Hub Utente notebooks.instances.use, dataproc.clusters.use
      Dataproc Hub Service account roles/dataproc.hubAgent
      Dataproc Service account roles/dataproc.worker

      Crea un'istanza Dataproc Hub

      1. Prima di iniziare:per creare un'istanza Dataproc Hub dalla console Google Cloud , il tuo account utente deve disporre dell'autorizzazione compute.instances.create. Inoltre, il account di servizio dell'istanza, ovvero il account di servizio Compute Engine predefinito o il account di servizio specificato dall'utente elencato in IAM e amministrazione > Service account (vedi Service account VM Dataproc), deve disporre dell'autorizzazione iam.serviceAccounts.actAs.

      2. Vai alla pagina Dataproc→Workbench nella console Google Cloud , quindi seleziona la scheda Notebook gestiti dall'utente.

      3. Se non è preselezionato come filtro, fai clic nella casella Filtro, quindi seleziona **Ambiente:Dataproc Hub"".

      4. Fai clic su Nuovo notebook → Dataproc Hub.

      5. Nella pagina Crea un notebook gestito dall'utente, fornisci le seguenti informazioni:

        1. Nome del notebook: nome dell'istanza Dataproc Hub.
        2. Regione: seleziona una regione per l'istanza Dataproc Hub. Anche i cluster Dataproc generati da questa istanza Dataproc Hub verranno creati in questa regione.
        3. Zona: seleziona una zona all'interno della regione selezionata.
        4. Ambiente:
          1. Environment: seleziona Dataproc Hub.
          2. Select a script to run after creation (facoltativo): puoi inserire o sfogliare e selezionare uno script o un eseguibile di azione di inizializzazione da eseguire sul cluster Dataproc generato.
          3. Populate Dataproc Hub (optional): fai clic su Populate per aprire un modulo che ti consente di impostare ciascuna delle variabili di ambiente dell'hub (vedi Impostare le variabili di ambiente dell'istanza Dataproc Hub per una descrizione di ciascuna variabile). Dataproc utilizza valori predefiniti per tutte le variabili di ambiente non impostate. In alternativa, puoi impostare coppie di metadati key:value per impostare le variabili di ambiente (vedi elemento successivo).
          4. Metadata:
            1. Se hai creato un file di testo che contiene le impostazioni variabile di ambiente dell'hub (vedi Impostare le variabili di ambiente dell'hub), fornisci il nome del file come key e la posizione Cloud Storage del file come gs://bucket-name/folder-name/environment-variable-filename.value Dataproc utilizza i valori predefiniti per tutte le variabili di ambiente non impostate.
        5. Configurazione macchina:
          1. Machine Type: seleziona il tipo di macchina di Compute Engine.
          2. Imposta altre opzioni di configurazione della macchina.
        6. Altre opzioni:
          1. Puoi espandere e impostare o sostituire i valori predefiniti nelle sezioni Dischi, Networking, Autorizzazione, Sicurezza e Upgrade dell'ambiente e integrità del sistema.
        7. Fai clic su Crea per avviare l'istanza Dataproc Hub.
      6. Il link Apri JupyterLab per l'istanza Dataproc Hub diventa attivo dopo la creazione dell'istanza. Gli utenti fanno clic su questo link per aprire la pagina del server JupyterHub per configurare e creare un cluster Dataproc JupyterLab (vedi Utilizzare Dataproc Hub).

Esegui la pulizia

Elimina l'istanza Dataproc Hub

  • Per eliminare l'istanza Dataproc Hub:
    gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
    

Elimina il bucket

  • Per eliminare il bucket Cloud Storage creato in Prima di iniziare, inclusi i file di dati memorizzati nel bucket:
    gcloud storage rm gs://${BUCKET_NAME} --recursive
    

Passaggi successivi