Limitaciones y consideraciones de Dataproc Serverless
- Los trabajos de Spark se ejecutan con la identidad de la cuenta de servicio, no con la identidad del usuario que envía el contenido.
Antes de comenzar
- Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
-
Habilita la API de Dataproc.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
-
En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
-
Habilita la API de Dataproc.
- Instala Google Cloud CLI.
-
Para inicializar la CLI de gcloud, ejecuta el siguiente comando:
gcloud init
Instala el complemento de JupyterLab de Dataproc
Puedes instalar y usar el complemento de JupyterLab de JupyterLab en una máquina o VM que tenga acceso a los servicios de Google, como tu máquina local o una instancia de VM de Compute Engine.
Para instalar el complemento, sigue estos pasos:
Asegúrate de que
Python 3.8+
esté instalado en tu máquina. Puedes descargar y, luego, instalar Python desdepython.org/downloads
.Verifica la instalación de Python 3.8+.
python3 --version
Instala
JupyterLab 3.6.3+
en tu máquina.pip3 install --upgrade jupyterlab
Verifica la instalación de JupyterLab 3.6.3+.
pip3 show jupyterlab
Instala el complemento de JupyterLab de JupyterLab.
pip3 install dataproc-jupyter-plugin
Si tu versión de JupyterLab es anterior a
4.0.0
, habilita la extensión del complemento.jupyter server extension enable dataproc_jupyter_plugin
-
jupyter lab
La página Launcher de JupyterLab se abrirá en tu navegador. Contiene una sección Trabajos y sesiones de Dataproc. También puede contener las secciones Notebooks sin servidores de Dataproc y Notebooks del clúster de Dataproc si tienes acceso a notebooks sin servidores de Dataproc o clústeres de Dataproc con el componente opcional de Jupyter que se ejecuta en tu proyecto.
De forma predeterminada, la sesión interactiva de Dataproc Serverless for Spark se ejecuta en el proyecto y la región que estableciste cuando ejecutaste
gcloud init
en Antes de comenzar. Puedes cambiar la configuración del proyecto y la región para tus sesiones desde la página Configuración > Configuración de Dataproc de JupyterLab.
Crea una plantilla de entorno de ejecución sin servidores de Dataproc
Las plantillas de entorno de ejecución sin servidores de Dataproc (también llamadas plantillas session
) contienen los parámetros de configuración para ejecutar el código de Spark en una sesión. Puedes
crear y administrar plantillas de entorno de ejecución con JupyterLab o gcloud CLI.
JupyterLab
Haz clic en la tarjeta
New runtime template
de la sección Notebooks sin servidores de Dataproc de la página Selector de JupyterLab.Completa el formulario Plantilla de entorno de ejecución.
Especifica un Nombre visible y una Descripción y, luego, ingresa o confirma las otras opciones de configuración.
Notas:
Configuración de red: La subred debe tener habilitado el Acceso privado a Google y debe permitir la comunicación de subred en todos los puertos (consulta Configuración de red de Dataproc Serverless para Spark).
Si la subred de la red
default
para la región que configuraste cuando ejecutastegcloud init
en la sección Antes de comenzar no está habilitada para el Acceso privado a Google, haz lo siguiente:- Habilita esta función para el Acceso privado a Google.
- Selecciona otra red con una subred regional que tenga habilitado el Acceso privado a Google. Puedes cambiar la región que usa Dataproc Serverless desde la página Configuración > Configuración de Dataproc de JupyterLab.
Metastore: Para usar un servicio de Dataproc Metastore en tus sesiones, selecciona el ID, la región y el servicio del proyecto del almacén de metadatos.
Tiempo de inactividad máximo: El tiempo de inactividad máximo del notebook antes de que finalice la sesión. Rango permitido: de 10 minutos a 336 horas (14 días)
Tiempo máximo de sesión: El ciclo de vida máximo de una sesión antes de que finalice Rango permitido: de 10 minutos a 336 horas (14 días)
PHS: Puedes seleccionar un servidor de historial de Spark persistente disponible para acceder a los registros de sesión durante y después de ellas.
Propiedades de Spark: Haz clic en Agregar propiedad en cada propiedad que desees configurar para tus sesiones de Spark sin servidores. Consulta las propiedades de Spark para obtener una lista de las propiedades de Spark compatibles y no compatibles, incluidos el entorno de ejecución, los recursos y las propiedades de ajuste de escala automático de Spark.
Etiquetas: Haz clic en Agregar etiqueta para cada etiqueta que se configure en tus sesiones de Spark sin servidores.
Visualiza tus plantillas de entorno de ejecución desde la página Configuración > Configuración de Dataproc.
- Puedes borrar una plantilla desde el menú Acción de la plantilla.
Haz clic en Guardar.
Abre y vuelve a cargar la página Launcher de JupyterLab para ver la tarjeta de plantilla de notebook guardada en la página Launcher de JupyterLab.
gcloud
Crea un archivo YAML con la configuración de tu plantilla de entorno de ejecución.
YAML simple
environmentConfig: executionConfig: networkUri: default jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing description: Team A Development Environment
YAML complejo
environmentConfig: executionConfig: serviceAccount: sa1 # Choose either networkUri or subnetworkUri networkUri: default subnetworkUri: subnet networkTags: - tag1 kmsKey: key1 idleTtl: 3600s ttl: 14400s stagingBucket: staging-bucket peripheralsConfig: metastoreService: projects/my-project-id/locations/us-central1/services/my-metastore-id sparkHistoryServerConfig: dataprocCluster: projects/my-project-id/regions/us-central1/clusters/my-cluster-id jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing runtimeConfig: version: "1.1" containerImage: gcr.io/my-project-id/my-image:1.0.1 properties: "p1": "v1" description: Team A Development Environment
Si la subred de la red
default
para la región que configuraste cuando ejecutastegcloud init
en Antes de comenzar no está habilitada para el Acceso privado a Google, haz lo siguiente:- Habilita esta función para el Acceso privado a Google.
- Selecciona otra red con una subred regional que tenga habilitado el Acceso privado a Google. Puedes cambiar la región que usa Dataproc Serverless desde la página Configuración > Configuración de Dataproc de JupyterLab.
Crea una plantilla de sesión (entorno de ejecución) desde tu archivo YAML. Para ello, ejecuta el siguiente comando gcloud beta dataproc session-templates import de forma local o en Cloud Shell:
gcloud beta dataproc session-templates import TEMPLATE_ID \ --source=YAML_FILE \ --project=PROJECT_ID \ --location=REGION
- Consulta gcloud beta dataproc session-templates para obtener comandos sobre cómo describir, enumerar, exportar y borrar plantillas de sesión.
Inicia y administra notebooks
Después de instalar el complemento de JupyterLab de JupyterLab, puedes hacer clic en las tarjetas de plantilla de la página Selector de JupyterLab para realizar las siguientes acciones:
Iniciar un notebook de Jupyter en Dataproc Serverless
En la sección Notebooks sin servidores de Dataproc de la página Launcher de JupyterLab, se muestran tarjetas de plantillas de notebooks que se asignan a plantillas de entorno de ejecución sin servidores de Dataproc Serverless (consulta Crea una plantilla de entorno de ejecución sin servidores de Dataproc).
Haz clic en una tarjeta para crear una sesión sin servidores de Dataproc y, luego, iniciar un notebook. Cuando se completa la creación de la sesión y el kernel del notebook está listo para usarse, el estado del kernel cambia de
Unknown
aIdle
.Escribe y prueba el código de notebook.
Copia y pega el siguiente código
Pi estimation
de PySpark en la celda del notebook de PySpark y, luego, presiona Mayúsculas + Intro para ejecutar el código.import random def inside(p): x, y = random.random(), random.random() return x*x + y*y < 1 count = sc.parallelize(range(0, 10000)) .filter(inside).count() print("Pi is roughly %f" % (4.0 * count / 10000))
Resultado del notebook:
Después de crear y usar un notebook, puedes finalizar la sesión del notebook haciendo clic en Cerrar kernel en la pestaña Kernel.
- Si no finalizas la sesión, Dataproc lo hace cuando vence el temporizador de inactividad de la sesión. Puedes configurar el tiempo de inactividad de la sesión en la configuración de la plantilla del entorno de ejecución. El tiempo de inactividad predeterminado de la sesión es de una hora.
Inicia un notebook en un clúster de Dataproc en Compute Engine
Si creaste un clúster de Jupyter de Dataproc en Compute Engine, la página Launcher de JupyterLab contiene una sección Notebook de clústeres de Dataproc con tarjetas de kernel preinstaladas.
Sigue estos pasos para iniciar un notebook de Jupyter en tu clúster de Dataproc en Compute Engine:
Haz clic en una tarjeta de la sección Notebook de clústeres de Dataproc.
Cuando el estado del kernel cambie de
Unknown
aIdle
, puedes comenzar a escribir y ejecutar el código del notebook.Después de crear y usar un notebook, puedes finalizar la sesión del notebook haciendo clic en Cerrar kernel en la pestaña Kernel.
Administra archivos de entrada y salida en Cloud Storage
El análisis de datos exploratorios y la creación de modelos de AA suelen implicar entradas y salidas basadas en archivos. Dataproc Serverless accede a estos archivos en Cloud Storage.
Para acceder al navegador de Cloud Storage, haz clic en el ícono del navegador de Cloud Storage en la barra lateral de la página Launcher de JupyterLab y, luego, haz doble clic en una carpeta para ver su contenido.
Puedes hacer clic en los tipos de archivos compatibles con Jupyter para abrirlos y editarlos. Cuando guardas los cambios en los archivos, se escriben en Cloud Storage.
Para crear una carpeta de Cloud Storage nueva, haz clic en el ícono de carpeta nueva y, luego, ingresa el nombre de la carpeta.
Para subir archivos a un bucket o una carpeta de Cloud Storage, haz clic en el ícono de carga y, luego, selecciona los archivos que deseas subir.
Desarrolla el código del notebook de Spark
Después de instalar el complemento de JupyterLab de JupyterLab, puedes iniciar notebooks de Jupyter desde la página Launcher de JupyterLab para desarrollar código de la aplicación.
Desarrollo de código de PySpark y Python
Los clústeres de Dataproc Serverless y Dataproc on Compute Engine admiten kernels de PySpark. Dataproc en Compute Engine también admite kernels de Python.
Haz clic en una tarjeta de PySpark en la sección Notebooks sin servidores de Dataproc o Notebook de clústeres de Dataproc en la página Launcher de JupyterLab para abrir un notebook de PySpark.
Haz clic en una tarjeta de kernel de Python en la sección Notebook de clústeres de Dataproc en la página Selector de JupyterLab para abrir un notebook de Python.
Desarrollo de código SQL
Haz clic en la tarjeta del kernel de PySpark en la sección Notebooks sin servidores de Dataproc o Notebook de clústeres de Dataproc de la página Launcher de JupyterLab para abrir un notebook de PySpark con el objetivo de escribir y ejecutar código SQL.
Comando mágico de Spark SQL: Como el kernel de PySpark que inicia Notebooks sin servidores de Dataproc está precargado con el comando mágico de Spark SQL, en lugar de usar spark.sql('SQL STATEMENT').show()
para unir tu instrucción de SQL, puedes escribir %%sparksql magic
en la parte superior de la celda y, luego, escribir la instrucción de SQL en la celda.
BigQuery SQL: El conector de Spark de BigQuery permite que tu código de notebook cargue datos de tablas de BigQuery, realice análisis en Spark y, luego, escriba los resultados en una tabla de BigQuery.
El entorno de ejecución de Dataproc Serverless 2.1 incluye el conector de Spark de BigQuery. Si usas Dataproc Serverless 2.0 o un entorno de ejecución anterior para iniciar notebooks de Dataproc Serverless, puedes instalar el conector de BigQuery Spark si agregas la siguiente propiedad de Spark a tu plantilla de entorno de ejecución de Dataproc Serverless:
spark.jars: gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.25.2.jar
Desarrollo de código de Scala
Los clústeres de Dataproc en Compute Engine creados con las versiones de imagen 2.0, 2.1 y posteriores incluyen Apache Toree, un kernel de Scala para la plataforma de notebooks de Jupyter que proporciona acceso interactivo a Spark.
Haz clic en la tarjeta de Apache Toree en la sección Notebook de clústeres de Dataproc en la página Launcher de JupyterLab para abrir un notebook para el desarrollo de código de Scala.
Explorador de metadatos
Si se adjunta una instancia de Dataproc Metastore (DPMS) a una plantilla de entorno de ejecución de Dataproc Serverless o a un clúster de Dataproc en Compute Engine, el esquema de instancias de DPMS se muestra en el explorador de metadatos de JupyterLab cuando se abre un notebook. DPMS es un servicio de Hive Metastore (HMS) completamente administrado y con escalamiento horizontal en Google Cloud.
Para ver los metadatos del HMS en el Explorador de metadatos, sigue estos pasos:
Habilita la API de Data Catalog en tu proyecto.
Habilita la sincronización de Data Catalog en el servicio de DPMS.
Especifica una instancia de DPMS cuando crees la plantilla del entorno de ejecución sin servidores de Dataproc o el clúster de Dataproc en Compute Engine.
Para abrir el Explorador de metadatos de JupyterLab, haz clic en su ícono en la barra lateral.
Puedes buscar una base de datos, tabla o columna en el Explorador de metadatos. Haz clic en el nombre de una base de datos, tabla o columna para ver los metadatos asociados.
Implementa tu código
Después de instalar el complemento de JupyterLab de JupyterLab, puedes usar JupyterLab para realizar las siguientes acciones:
Ejecuta el código de tu notebook en la infraestructura sin servidores de Dataproc
Envía trabajos por lotes a la infraestructura sin servidores de Dataproc o a tu clúster de Dataproc en Compute Engine.
Ejecuta el código del notebook en Dataproc Serverless
Haz clic en el ícono Ejecutar o presiona las teclas Mayúsculas + Volver para ejecutar el código en una celda de notebook.
Usa el menú Ejecutar para ejecutar el código en una o más celdas de notebook.
Envía un trabajo por lotes a Dataproc Serverless
Haz clic en la tarjeta Sin servidores de la sección Trabajos y sesiones de Dataproc de la página Launcher de JupyterLab.
Haz clic en la pestaña Lote (Batch) y, luego, en Crear lote (Create Batch) y completa los campos de Información del lote (Batch Info).
Haz clic en Enviar (Submit) para enviar el trabajo.
Envía un trabajo por lotes a un clúster de Dataproc on Compute Engine
Haz clic en la tarjeta Clústeres de la sección Trabajos y sesiones de Dataproc de la página Launcher de JupyterLab.
Haz clic en la pestaña Trabajos y, luego, en Enviar trabajo.
Selecciona un Clúster y, luego, completa los campos de Trabajo.
Haz clic en Enviar (Submit) para enviar el trabajo.
Consulta y administra recursos
Después de instalar el complemento de JupyterLab de Dataproc, puedes ver y administrar Dataproc Serverless y Dataproc en Compute Engine desde la sección Trabajos y sesiones de Dataproc en la página Launcher de JupyterLab.
Haz clic en la sección Trabajos y sesiones de Dataproc para ver las tarjetas Clústeres y Sin servidores.
Para ver y administrar sesiones de Dataproc Serverless, sigue estos pasos:
- Haz clic en la tarjeta Sin servidores.
- Haz clic en la pestaña Sesiones y, luego, en un ID de sesión para abrir la página Detalles de la sesión y ver las propiedades de la sesión, ver el registro de Google Cloud en el Explorador de registros y finalizar una sesión. Nota: Se crea una sesión única de Dataproc Serverless para iniciar cada notebook de Dataproc Serverless.
Sigue estos pasos para ver y administrar los lotes de Dataproc Serverless:
- Haz clic en la pestaña Lotes para ver la lista de lotes sin servidores de Dataproc en el proyecto y la región actuales. Haz clic en el ID del lote para ver los detalles del lote.
Para ver y administrar Dataproc en clústeres de Compute Engine, sigue estos pasos:
- Haz clic en la tarjeta Clústeres. La pestaña Clústeres está seleccionada para mostrar los clústeres activos de Dataproc on Compute Engine en el proyecto y la región actuales. Puedes hacer clic en los íconos de la columna Acciones para iniciar, detener o reiniciar un clúster. Haz clic en el nombre de un clúster para ver sus detalles. Puedes hacer clic en los íconos de la columna Acciones para clonar, detener o borrar un trabajo.
Sigue estos pasos para ver y administrar trabajos de Dataproc en Compute Engine:
- Haz clic en la tarjeta Trabajos para ver la lista de trabajos del proyecto actual. Haz clic en un ID de trabajo para ver los detalles del trabajo.