Configura Dataproc Hub

Dataproc Hub es un servidor de 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 notebook de Jupyter y JupyterLab (consulta Usa Dataproc Hub).

Objetivos

  1. Define una configuración de clúster de Dataproc Hub.

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

  3. Crea una instancia de Dataproc Hub.

Antes de comenzar

Si aún no lo hiciste, crea un proyecto de Google Cloud y un depósito de Cloud Storage.

  1. Configura el proyecto

    1. Accede a tu Cuenta de Google.

      Si todavía no tienes una cuenta, regístrate para obtener una nueva.

    2. En la página de selección de proyectos de Cloud Console, selecciona o crea un proyecto de Cloud.

      Ir a la página Selector de proyectos

    3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Obtén información sobre cómo confirmar que tienes habilitada la facturación para tu proyecto.

    4. Habilita las API de Dataproc, Compute Engine, and Cloud Storage.

      Habilita las API

    5. Instala e inicializa el SDK de Cloud.

  2. Crea un depósito de Cloud Storage en tu proyecto para conservar los datos que se usan en este instructivo.

    1. En Cloud Console ve a la página Navegador de Cloud Storage.

      Ir a la página Navegador de Cloud Storage

    2. Haz clic en Crear depósito.
    3. En el diálogo Crear depósito, especifica los siguientes atributos:
    4. Haz clic en Crear.

Define una configuración de clústeres

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

La configuración del clúster puede especificar cualquier característica o componente disponible para los clústeres de Dataproc (como el tipo de máquina, las acciones de inicialización y los componentes opcionales).

Archivo YAML de configuración de clúster de muestra

clusterName: cluster-name
config:
  gceClusterConfig:
    metadata:
      'PIP_PACKAGES': 'google-cloud-core>=1.3.0 google-cloud-storage>=1.28.1'
  initializationActions:
  - executableFile: gs://dataproc-initialization-actions/python/pip-install.sh
  softwareConfig:
    imageVersion: 1.5-ubuntu18
    optionalComponents:
    - ANACONDA
    - JUPYTER

Cada configuración debe guardarse en Cloud Storage. Puedes crear y guardar varios archivos de configuración de ambos tipos para que los usuarios elijan cuando usen Dataproc Hub para crear su entorno de notebook de Dataproc.

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

  1. Crea el archivo de configuración YAML del clúster desde la consola.

  2. Exporta un archivo de configuración YAML del clúster desde un clúster existente.

Crea el archivo de configuración YAML del clúster desde la consola

  1. Abre la página Crear un clúster en Cloud Console.
  2. Selecciona y completa los campos para especificar el tipo de clúster que generará Dataproc Hub para los usuarios.
    1. En la parte inferior de la página, selecciona "REST equivalente".
    2. Copia el bloque JSON generado, sin incluir la línea de solicitud POST inicial; luego pega el bloque JSON en un convertidor JSON a YAML en línea (busca "Convertir JSON a YAML").
    3. Copia el archivo YAML convertido en un archivo cluster-config-filename.yaml local.

Exporta un archivo de configuración YAML del clúster desde un clúster existente

  1. Crea un clúster que coincida con 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
     

Guarda el archivo de configuración YAML en Cloud Storage

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

gsutil cp cluster-config-name.yaml gs://bucket-name/

Configura las variables de entorno de la instancia de Dataproc Hub

Crea un archivo de texto que establezca las variables de entorno de la instancia de Dataproc Hub. Debe establecer variables obligatorias y puede establecer variables opcionales para permitir que los usuarios personalicen el clúster de Dataproc generado por la instancia de Dataproc Hub.

Variable Obligatorio/opcional Descripción Ejemplo
NOTEBOOKS_LOCATION Obligatorio Depósito de Cloud Storage o carpeta de depósito que contiene notebooks de usuario El prefijo gs:// es opcional. gs://bucket-name/
DATAPROC_CONFIGS Obligatorio Lista delimitada por comas de las strings de las rutas de Cloud Storage a los archivos de configuración del clúster YAML. El prefijo gs:// es opcional. gs://bucket-name/folder/cluster-config-filename1.yaml,gs://bucket/folder/cluster-config-filename2.yaml
DATAPROC_LOCATIONS_LIST Obligatorio Sufijos de zona en la región donde se encuentra la instancia de Dataproc Hub. Los usuarios pueden seleccionar una de estas zonas como la zona donde se generará su clúster de Dataproc. b,c,d
DATAPROC_DEFAULT_SUBNET Opcional Subred en la que la instancia de Dataproc Hub generará clústeres de Dataproc. Debe ser la misma que la subred de Dataproc Hub. https://www.googleapis.com/compute/v1/projects/project-id/regions/region/subnetworks/subnet-name
DATAPROC_SERVICE_ACCOUNT Opcional Cuenta de servicio que se ejecutará en clústeres de usuarios generados. Si no se establece, se usa la cuenta de servicio predeterminada para clústeres de Dataproc. service-account@project-id.iam.gserviceaccount.com
SPAWNER_DEFAULT_URL Opcional Indica si se debe mostrar la IU de Jupyter o JupyterLab en clústeres de Dataproc generados de forma predeterminada. / o /lab, para Jupyter o JupyterLab, respectivamente.
DATAPROC_ALLOW_CUSTOM_CLUSTERS Opcional Permite permitir o no que los usuarios personalicen sus clústeres de Dataproc. true o false
DATAPROC_MACHINE_TYPES Opcional Lista de tipos de máquinas que los usuarios pueden elegir para sus clústeres de Dataproc generados, si la personalización del clúster (DATAPROC_ALLOW_CUSTOM_CLUSTERS) está habilitada. n1-standard-4,n1-standard-8,e2-standard-4,n1-highcpu-4
NOTEBOOKS_EXAMPLES_LOCATION Opcional Ruta de acceso de Cloud Storage al depósito de notebooks o a la carpeta del depósito que se descargarán en el clúster de Dataproc generado cuando se inicie. gs://bucket-name/

Puedes crear un environment-variable-filename local que establezca las variables de entorno de la instancia de Dataproc Hub mediante la ejecución del siguiente comando. Completa los valores de marcadores de posición y cambia o agrega variables y sus valores.

cat <<EOF > environment-variables-file
DATAPROC_CONFIGS=gs://bucket/cluster-config-name.yaml
NOTEBOOKS_LOCATION=gs://bucket/notebooks
DATAPROC_DEFAULT_SUBNET=https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/default
DATAPROC_LOCATIONS_LIST=b,c
EOF

Guarda el archivo de variables de entorno de la instancia de Dataproc Hub en Cloud Storage

Copia el archivo YAML de variables de entorno de la instancia de Dataproc Hub local en tu depósito de Cloud Storage.

gsutil cp environment-variable-filename gs://bucket-name/folder-name/

Configura las funciones de IAM

De forma predeterminada, la instancia de Dataproc Hub se ejecutará como la cuenta de servicio predeterminada de Compute Engine del proyecto. Puedes elegir crear la instancia con una cuenta de servicio diferente. La cuenta de servicio de la instancia de Dataproc Hub debe tener las siguientes funciones de IAM (administración de identidades y accesos):

Para permitir que los usuarios del proyecto accedan a la instancia de Hub, también debes otorgar roles/iam.serviceAccountUser a usuarios individuales.

Configura funciones

Ten en cuenta que tanto la cuenta de servicio del hub como el usuario del notebook deben tener la función roles/iam.serviceAccountUser, pero cada una debe aplicarse en objetivos diferentes: la cuenta de servicio de Hub debe poder actuar como la cuenta de servicio de Dataproc, y el usuario debe poder actuar como la cuenta de servicio de Hub. Para aplicar estas funciones, puedes realizar una de las siguientes acciones:

  1. Otorga la función serviceAccountUser a nivel de proyecto a la cuenta de servicio de Hub (<hub-service-account>@<my-project>.iam.gserviceaccount.com) y al usuario del notebook (<user>@gmail.com) para permitir que ambos actúen como cualquier cuenta de servicio en tu proyecto. Otorga también la función roles/dataproc.admin a nivel de proyecto a la cuenta de servicio de Hub. O

  2. Otorga las siguientes funciones a los siguientes principales:

    • Otorga la función roles/dataproc.worker a la cuenta de servicio de Dataproc (<dataproc-service-account>@<my-project>.iam.gserviceaccount.com).
    • Otorga la función roles/dataproc.admin y la función roles/iam.serviceAccountUser a la cuenta de servicio de Hub (<hub-service-account>@<my-project>.iam.gserviceaccount.com). La función serviceAccountUser se puede otorgar a nivel de proyecto o para acceder a la cuenta de servicio de Dataproc (<dataproc-service-account>@<my-project>.iam.gserviceaccount.com).
    • Otorga la función roles/dataproc.admin al usuario del notebook (<user>@gmail.com). Esta función se puede otorgar a nivel de proyecto o para acceder a la cuenta de servicio de Hub (<hub-service-account>@<my-project>.iam.gserviceaccount.com).

Crea una instancia de Dataproc Hub

  1. Ve a la página Dataproc → Instancias de notebooks en Cloud Console.

  2. Haz clic en INSTANCIA NUEVA y, luego, selecciona "Smart Analytics Frameworks → Dataproc Hub".

  3. En la página Instancia de notebook nueva, proporciona la siguiente información:

    1. Nombre de la instancia: Nombre de la instancia de Dataproc Hub.
    2. Región: Selecciona una región para la instancia de Dataproc Hub. Nota: Los clústeres de Dataproc generados por esta instancia de Dataproc Hub también se crearán en esta región.
    3. Zona: selecciona una zona dentro de la región seleccionada.
    4. Entorno: Dataproc Hub.
      1. Variables de entorno:
        1. container-env-file: gs://<var>bucket-name</var>/folder-name<var>/<var>environment-variable-filename</var>. Proporciona el nombre y la ubicación de Cloud Storage de tu archivo de variables de entorno de la instancia de Dataproc Hub.
    5. Configuración de la máquina:
      1. Tipo de máquina: Selecciona el tipo de máquina para Compute Engine.
      2. Establece otras opciones de configuración de la máquina.
    6. Haz clic en CREAR para iniciar la instancia.
  4. Cuando la instancia se esté ejecutando, haz clic en el vínculo "JupyterLab" en la página Instancias de notebooks para acceder a la instancia.

Realiza una limpieza

Borra la instancia de Dataproc Hub

  • Para borrar tu instancia de Dataproc Hub:
    gcloud compute instances delete --project=${PROJECT} ${INSTANCE_NAME}
    

Borra el depósito

  • Para borrar el depósito de Cloud Storage que creaste en la sección Antes de comenzar, incluidos los archivos de datos almacenados en el depósito, ejecuta lo siguiente:
    gsutil -m rm -r gs://${BUCKET_NAME}
    

Próximos pasos