Configurar Dataproc Hub


Dataproc Hub es un servidor JupyterHub personalizado. Los administradores configuran y crean instancias de Dataproc Hub que pueden generar clústeres de Dataproc de un solo usuario para alojar entornos de cuadernos de Jupyter y JupyterLab (consulta Usar Dataproc Hub).

Inicia Notebooks para varios usuarios. Puedes crear una instancia de Vertex AI Workbench con Dataproc habilitado o instalar el complemento Dataproc JupyterLab en una máquina virtual para ofrecer cuadernos a varios usuarios.

Objetivos

  1. Define una configuración de clúster de Dataproc (o usa uno de los archivos de configuración predefinidos).

  2. Define las variables de entorno de la instancia de Dataproc Hub.

  3. Crea una instancia de Dataproc Hub.

Antes de empezar

Si aún no lo has hecho, crea un Google Cloud proyecto y un segmento de Cloud Storage.

  1. Configurar un proyecto

    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 Dataproc, Compute Engine, and Cloud Storage 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. Install the Google Cloud CLI.

    6. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    7. Para inicializar gcloud CLI, ejecuta el siguiente comando:

      gcloud init
    8. 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

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

    10. Enable the Dataproc, Compute Engine, and Cloud Storage 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

    11. Install the Google Cloud CLI.

    12. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    13. Para inicializar gcloud CLI, ejecuta el siguiente comando:

      gcloud init
    14. Crear un segmento de Cloud Storage en tu proyecto para almacenar los datos que se usan en este 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. Definir una configuración de clúster

      Una instancia de Dataproc Hub crea un clúster a partir de los valores de configuración que contiene un archivo de configuración de clúster YAML.

      En la configuración del clúster se puede especificar cualquier función o componente disponible para los clústeres de Dataproc (como el tipo de máquina, las acciones de inicialización y los componentes opcionales). La versión de la imagen del clúster debe ser la 1.4.13 o una posterior. Si intentas crear un clúster con una versión de imagen inferior a 1.4.13, se producirá un error y no se podrá crear.

      .

      Archivo de configuración de clúster de ejemplo en formato YAML

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

      Cada configuración debe guardarse en Cloud Storage. Puedes crear y guardar varios archivos de configuración para que los usuarios puedan elegir cuando usen Dataproc Hub para crear su entorno de cuaderno de clúster de Dataproc.

      Hay dos formas de crear un archivo de configuración de clúster YAML:

      1. Crear un archivo de configuración de clúster YAML desde la consola

      2. Exportar un archivo de configuración de clúster YAML de un clúster

      Crear un archivo de configuración de clúster YAML desde la consola

      1. Abre la página Crear un clúster en la consola de Google Cloud y, a continuación, selecciona y rellena los campos para especificar el tipo de clúster que Dataproc Hub creará para los usuarios.
        1. En la parte inferior del panel de la izquierda, selecciona "REST equivalente".
        2. Copia el bloque JSON generado, excluyendo la línea inicial de la solicitud POST, y pégalo en un convertidor online de JSON a YAML (busca "Convert JSON to YAML" en Internet).
        3. Copia el archivo YAML convertido en un archivo cluster-config-filename.yaml local.

      Exportar un archivo de configuración de clúster YAML de un clúster

      1. Crea un clúster que se ajuste a tus requisitos.
      2. Exporta la configuración del clúster a un archivo cluster-config-filename.yaml local.
        gcloud dataproc clusters export cluster-name \
            --destination cluster-config-filename.yaml  \
            --region region
         

      Guardar el archivo de configuración YAML en Cloud Storage

      Copia el archivo de configuración del clúster YAML local en tu segmento de Cloud Storage.

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

      Definir variables de entorno de la instancia de Dataproc Hub

      El administrador puede definir las variables de entorno del centro que se indican en la tabla de abajo para definir los atributos de los clústeres de Dataproc que crearán los usuarios del centro.

      Variable Descripción Ejemplo
      NOTEBOOKS_LOCATION El segmento o la carpeta del segmento de Cloud Storage que contiene los cuadernos del usuario. El prefijo `gs://` es opcional. Valor predeterminado: el segmento de staging de Dataproc. gs://bucket-name/
      DATAPROC_CONFIGS Lista de cadenas separadas por comas de las rutas de Cloud Storage a los archivos de configuración del clúster de YAML. El prefijo `gs://` es opcional. Valor predeterminado: gs://dataproc-spawner-dist/example-configs/. que contiene example-cluster.yaml y example-single-node.yaml predefinidos. gs://cluster-config-filename.yaml
      DATAPROC_LOCATIONS_LIST Sufijos de zonas en la región en la que se encuentra la instancia de Dataproc Hub. Los usuarios pueden seleccionar una de estas zonas como la zona en la que se generará su clúster de Dataproc. Valor predeterminado: "b". b, c y d
      DATAPROC_DEFAULT_SUBNET La subred en la que la instancia de Dataproc Hub generará clústeres de Dataproc. Valor predeterminado: la subred de la instancia de Dataproc Hub. https://www.googleapis.com/compute/v1/projects/project-id/regions/region/subnetworks/subnet-name
      DATAPROC_SERVICE_ACCOUNT Cuenta de servicio con la que se ejecutarán las VMs de Dataproc. Valor predeterminado: si no se define, se usa la cuenta de servicio predeterminada de Dataproc. service-account@project-id.iam.gserviceaccount.com
      SPAWNER_DEFAULT_URL Decide si mostrar de manera predeterminada la interfaz de usuario de Jupyter o JupyterLab en los clústeres de Dataproc generados. Valor predeterminado: "/lab". `/` o `/lab` para Jupyter o JupyterLab, respectivamente.
      DATAPROC_ALLOW_CUSTOM_CLUSTERS Decide si permitir a los usuarios personalizar sus clústeres de Dataproc Valor predeterminado: false. "true" o "false"
      DATAPROC_MACHINE_TYPES_LIST Lista con los tipos de máquinas que pueden elegir los usuarios para sus clústeres de Dataproc generados si la personalización de clústeres (DATAPROC_ALLOW_CUSTOM_CLUSTERS) está habilitada. Valor predeterminado: vacío (se permiten todos los tipos de máquinas). n1-standard-4,n1-standard-8,e2-standard-4,n1-highcpu-4
      NOTEBOOKS_EXAMPLES_LOCATION Ruta de Cloud Storage al segmento o la carpeta del segmento del cuaderno que se descargará en el clúster de Dataproc generado cuando se active. Valor predeterminado: vacío. gs://bucket-name/

      Configurar variables de entorno del centro

      Hay dos formas de definir variables de entorno del centro de control:

      1. Definir variables de entorno del centro de control desde la consola

      2. Definir variables de entorno del centro de control en un archivo de texto

      Definir variables de entorno del centro de control desde la consola

      Cuando creas una instancia de Dataproc Hub desde la pestaña Cuadernos gestionados por usuarios de la página Dataproc > Workbench de la consola de Google Cloud , puedes hacer clic en el botón Rellenar para abrir un formulario Rellenar Dataproc Hub que te permite definir cada variable de entorno.

      Definir variables de entorno del centro en un archivo de texto

      1. Crea el archivo. Puede usar un editor de texto para definir variables de entorno de instancias de Dataproc Hub en un archivo local. También puedes crear el archivo ejecutando el siguiente comando después de rellenar los valores de los marcadores de posición y de cambiar o añadir variables y sus valores.

        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. Guarda el archivo en Cloud Storage. Copia el archivo de variables de entorno de tu instancia local de Dataproc Hub en tu segmento de Cloud Storage.

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

      Definir roles de Gestión de Identidades y Accesos (IAM)

      Dataproc Hub incluye las siguientes identidades con las siguientes funciones:

      • Administrador: crea una instancia de Dataproc Hub
      • Usuario de datos y aprendizaje automático: accede a la interfaz de usuario de Dataproc Hub
      • Cuenta de servicio de Dataproc Hub: representa Dataproc Hub.
      • Cuenta de servicio de Dataproc: representa el clúster de Dataproc que crea Dataproc Hub.

      Cada identidad requiere roles o permisos específicos para llevar a cabo las tareas asociadas. En la siguiente tabla se resumen los roles y permisos de gestión de identidades y accesos que requiere cada identidad.

      Identidad Tipo Rol o permiso
      Administrador de Dataproc Hub Cuenta de usuario o de servicio roles/notebooks.admin
      Usuario de Dataproc Hub Usuario notebooks.instances.use, dataproc.clusters.use
      Dataproc Hub Cuenta de servicio roles/dataproc.hubAgent
      Dataproc Cuenta de servicio roles/dataproc.worker

      Crear una instancia de Dataproc Hub

      1. Antes de empezar: para crear una instancia de Dataproc Hub desde la consola de Google Cloud , tu cuenta de usuario debe tener el permiso compute.instances.create. Además, la cuenta de servicio de la instancia (la cuenta de servicio predeterminada de Compute Engine o la cuenta de servicio especificada por el usuario que aparece en IAM y administración > Cuentas de servicio [consulta Cuenta de servicio de VM de Dataproc]) debe tener el permiso iam.serviceAccounts.actAs.

      2. Ve a la página Dataproc → Workbench de la consola Google Cloud y, a continuación, selecciona la pestaña Notebooks gestionados por el usuario.

      3. Si no está preseleccionado como filtro, haz clic en el cuadro Filtro y, a continuación, selecciona **Entorno:Dataproc Hub"".

      4. Haz clic en Nuevo cuaderno > Dataproc Hub.

      5. En la página Crear un cuaderno gestionado por el usuario, proporciona la siguiente información:

        1. Nombre del cuaderno: nombre de la instancia de Dataproc Hub.
        2. Región: selecciona una región para la instancia de Dataproc Hub. Los clústeres de Dataproc que genere esta instancia de Dataproc Hub también se crearán en esta región.
        3. Zona: selecciona una zona de la región elegida.
        4. Entorno:
          1. Environment: selecciona Dataproc Hub.
          2. Select a script to run after creation (opcional): Puedes insertar o buscar y seleccionar una secuencia de comandos o un archivo ejecutable de acción de inicialización para ejecutarlo en el clúster de Dataproc creado.
          3. Populate Dataproc Hub (optional): Haz clic en Populate para abrir un formulario que te permita definir cada una de las variables de entorno del hub (consulta la sección Definir variables de entorno de la instancia de Dataproc Hub para ver una descripción de cada variable). Dataproc usa valores predeterminados para las variables de entorno que no se hayan definido. También puedes definir pares de metadatos key:value para definir variables de entorno (consulta el siguiente elemento).
          4. Metadata:
            1. Si has creado un archivo de texto que contiene la configuración de las variables de entorno del centro (consulta Configurar variables de entorno del centro), proporciona el nombre del archivo como key y la ubicación de Cloud Storage del archivo como gs://bucket-name/folder-name/environment-variable-filename.value Dataproc usa valores predeterminados para las variables de entorno que no se hayan definido.
        5. Configuración de la máquina:
          1. Machine Type: selecciona el tipo de máquina de Compute Engine.
          2. Define otras opciones de configuración de la máquina.
        6. Otras opciones:
          1. Puede desplegar y definir o sustituir los valores predeterminados en las secciones Discos, Redes, Permisos, Seguridad y Actualización del entorno y estado del sistema.
        7. Haz clic en Crear para iniciar la instancia de Dataproc Hub.
      6. El enlace Abrir JupyterLab de la instancia de Dataproc Hub se activa después de crear la instancia. Los usuarios hacen clic en este enlace para abrir la página del servidor JupyterHub y configurar y crear un clúster de Dataproc JupyterLab (consulta Usar Dataproc Hub).

Limpieza

Eliminar la instancia de Dataproc Hub

  • Para eliminar tu instancia de Dataproc Hub, sigue estos pasos:
    gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
    

Eliminar el segmento

  • Para eliminar el segmento de Cloud Storage que has creado en la sección Antes de empezar, incluidos los archivos de datos almacenados en el segmento, sigue estos pasos:
    gcloud storage rm gs://${BUCKET_NAME} --recursive
    

Siguientes pasos