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 lo envía.
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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Dataproc API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Dataproc API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Instala el complemento de JupyterLab de Dataproc
Puedes instalar y usar el complemento de JupyterLab de Dataproc en una máquina o VM que tenga acceso a 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 e instalaremos Python desdepython.org/downloads
Verifica la instalación de Python 3.8 y versiones posteriores.
python3 --version
Instala
JupyterLab 3.6.3+
en tu máquina.pip3 install --upgrade jupyterlab
Verifica la instalación de JupyterLab 3.6.3 (o una versión posterior).
pip3 show jupyterlab
Instala el complemento de JupyterLab de Dataproc.
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 del Selector de JupyterLab se abre en tu navegador. Contiene una sección Trabajos y sesiones de Dataproc. También puede contener Secciones Notebooks sin servidores de Dataproc y Notebooks de clúster de Dataproc si tienes acceso a notebooks sin servidores de Dataproc o a clústeres de Dataproc con el componente opcional de Jupyter en ejecución en tu proyecto.
De forma predeterminada, tu sesión de Dataproc Serverless para Spark interactiva se ejecuta en el proyecto y la región que configuraste cuando ejecutaste
gcloud init
en Antes de comenzar. Puedes cambiar el proyecto y configuración de la región para tus sesiones desde el Configuración > de JupyterLab > Configuración de Dataproc.
Crea una plantilla de entorno de ejecución de Dataproc Serverless
Las plantillas del entorno de ejecución de Dataproc Serverless (también llamadas plantillas session
)
contienen parámetros de configuración para ejecutar 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
en Notebooks sin servidores de Dataproc. en la página Selector de JupyterLab.Completa el formulario Plantilla de entorno de ejecución.
Especifica un Nombre visible (Display name) y una Descripción (Description) y, luego, ingresa o confirma. los demás parámetros de configuración.
Notas:
Configuración de red: La subnetwork debe Tener habilitado el Acceso privado a Google y debe permitir la comunicación de la subred en todos los puertos (consulta Dataproc sin servidores para la configuración de redes de Spark).
Si la subred de la red
default
para la región que configuraste cuando ejecutastegcloud init
en Antes de comenzar no está habilitado para el Acceso privado a Google:- Habilitarlo 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 de metastore.
Tiempo de inactividad máximo: Es el tiempo máximo de inactividad del notebook antes de que se inicie la sesión. o cerrarse. Rango permitido: de 10 minutos a 336 horas (14 días).
Tiempo máximo de sesión: La duración máxima de una sesión antes de que esta finalice. o cerrarse. Rango permitido: de 10 minutos a 336 horas (14 días).
PHS: Puedes seleccionar un Servidor de historial de Spark persistente para permitirte acceder a los registros durante las sesiones y después de ellas.
Propiedades de Spark: Haz clic en Agregar propiedad para cada propiedad que quieras configurar para tus sesiones de Spark sin servidor. Consulta Propiedades de Spark para obtener una lista de las propiedades de Spark compatibles y no compatibles, que incluyen Propiedades del entorno de ejecución, los recursos y el ajuste de escala automático de Spark.
Etiquetas: Haz clic en Agregar etiqueta en cada etiqueta que desees configurar. en tus sesiones de Spark sin servidores.
Para ver tus plantillas de entorno de ejecución, ve a 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 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
de la región que configuraste cuando ejecutastegcloud init
en Antes de comenzar no está habilitada para el Acceso privado a Google, haz lo siguiente:- Habilitarlo 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 pestaña Configuración > Configuración de Dataproc.
Crea una plantilla de sesión (entorno de ejecución) a partir de tu archivo YAML ejecutando 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 de comandos para describir, enumerar, exportar y borrar plantillas de sesión.
Iniciar y administrar notebooks
Después de instalar el complemento de JupyterLab de Dataproc, Puedes hacer clic en las tarjetas de plantilla en la página Launcher de JupyterLab para hacer lo siguiente:
Inicia un notebook de Jupyter en Dataproc Serverless
La sección Notebooks sin servidores de Dataproc en la página del Selector de JupyterLab muestra una plantilla de notebook tarjetas que se asignan a plantillas de entorno de ejecución de Dataproc Serverless (consulta Crear una plantilla de entorno de ejecución de Dataproc Serverless.
Haz clic en una tarjeta para crear una sesión de Dataproc Serverless. iniciar un notebook. Cuando se complete la creación de la sesión y el notebook el kernel está listo para usarse, su estado 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 ejecutarlo.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. en la pestaña Kernel, haz clic en Shut Down Kernel
- Si no finalizas la sesión, Dataproc lo hace cuando expira el temporizador de inactividad de la sesión. Puedes configurar la sesión tiempo de inactividad en las configuración de plantillas 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 un Notebook del clúster de Dataproc con tarjetas de kernel preinstaladas.
Para iniciar un notebook de Jupyter en tu Dataproc el Clúster de Compute Engine:
Haz clic en una tarjeta de la sección Notebook del clúster de Dataproc.
Cuando el estado del kernel cambia de
Unknown
aIdle
, puedes comenzar a escribir y ejecutar código de notebook.Después de crear y usar un notebook, puedes finalizar la sesión. en la pestaña Kernel, haz clic en Shut Down Kernel
Administra archivos de entrada y salida en Cloud Storage
El análisis de datos exploratorios y la creación de modelos de AA a menudo implican de entrada y salida basadas en archivos. Dataproc Serverless accede a estos archivos en Cloud Storage.
Para acceder al navegador de Cloud Storage, haz clic en el navegador de Cloud Storage. en la barra lateral de la página Launcher de JupyterLab y, luego, haz doble clic en carpeta para ver su contenido.
Puedes hacer clic en los tipos de archivos compatibles con Jupyter para abrirlos y editarlos. Cuando guardar los cambios en los archivos, estos se escriben en Cloud Storage.
Para crear una nueva carpeta de Cloud Storage, haz clic en el ícono de carpeta nueva, luego escribe el nombre de la carpeta.
Para subir archivos a un bucket de Cloud Storage o a una carpeta, 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 Dataproc, puedes iniciar notebooks de Jupyter desde la página Launcher de JupyterLab para desarrollar el código de la aplicación.
Desarrollo de código de PySpark y Python
Dataproc Serverless y Dataproc en Compute Engine admiten kernels de PySpark. Dataproc en Compute Engine también es compatible con kernels de Python.
Haz clic en una tarjeta de PySpark 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 del kernel de Python en la Sección Notebook del clúster de Dataproc en la página Launcher de JupyterLab para abrir un notebook de Python.
Desarrollo de código SQL
Haz clic en la tarjeta del kernel de PySpark Notebooks sin servidores de Dataproc o Notebook de clústeres de Dataproc de la página Selector de JupyterLab para abrir un notebook de PySpark para escribir y ejecutar un código SQL.
Magia de Spark SQL: Desde el kernel de PySpark que se inicia
Notebooks sin servidores de Dataproc
se precarga 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 una celda y, luego, escribe tu instrucción de SQL en la celda.
BigQuery SQL: El conector de Spark de BigQuery permite que el código del notebook cargue datos de tablas de BigQuery, realizar el análisis en Spark y, luego, escribir 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 el entorno de ejecución de Dataproc Serverless 2.0 o una versión anterior para iniciar notebooks de Dataproc Serverless, puedes instalar el conector de BigQuery de Spark agregando 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 Scala
Dataproc en clústeres de Compute Engine creados con la versión de imagen 2.0 o posterior, 2.1 o posterior, incluye Apache Toree, un kernel de Scala para la plataforma de Jupyter Notebook que proporciona acceso interactivo a Spark.
Haz clic en la tarjeta de Apache Toree Notebook del clúster de Dataproc en la página Launcher de JupyterLab para abrir un notebook para Scala el desarrollo de código.
Explorador de metadatos
Si una instancia de Dataproc Metastore (DPMS) se conecta a una plantilla de entorno de ejecución sin servidores de Dataproc o un clúster de Dataproc en Compute Engine, el esquema de instancia 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 escalable horizontalmente en Google Cloud.
Sigue estos pasos para ver los metadatos de HMS en el Explorador de metadatos:
Habilita la API de Data Catalog en tu proyecto.
Habilita la sincronización de Data Catalog en tu servicio de DPMS.
Especifica una instancia de DPMS cuando crees la plantilla de entorno de ejecución de Dataproc Serverless o crees el clúster de Dataproc en Compute Engine.
Para abrir el Explorador de metadatos de JupyterLab, haz clic en el ícono de la barra lateral.
Puedes buscar una base de datos, una tabla o una 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 Dataproc, puedes usar JupyterLab para lo siguiente:
Ejecuta tu código de notebook en la infraestructura de Dataproc Serverless
Envía trabajos por lotes a la infraestructura sin servidores de Dataproc o a tu Clúster de Dataproc en Compute Engine.
Ejecuta código de 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 código en una o más celdas del notebook.
Envía un trabajo por lotes a Dataproc Serverless
Haz clic en la tarjeta Sin servidores en la sección Trabajos y sesiones de Dataproc. en la página Launcher de JupyterLab.
Haz clic en la pestaña Lote y, luego, en Crear lote, y completa los Batch Info.
Haz clic en Enviar para enviar el trabajo.
Envía un trabajo por lotes a un clúster de Dataproc en Compute Engine
Haz clic en la tarjeta Clústeres en la sección Trabajos y sesiones de Dataproc. en 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 del Trabajo.
Haz clic en Enviar para enviar el trabajo.
Visualiza y administra recursos
Después de instalar el complemento de JupyterLab de Dataproc, puedes ver y administrar Dataproc Serverless y Dataproc en Compute Engine de la sección Trabajos y sesiones de Dataproc de la página Selector de JupyterLab.
Haz clic en la sección Trabajos y sesiones de Dataproc para ver los Clústeres y Tarjetas sin servidores.
Para ver y administrar sesiones de Dataproc Serverless, haz lo siguiente:
- Haz clic en la tarjeta Sin servidor.
- Haz clic en la pestaña Sesiones y, luego, en un ID de sesión para abrir los Detalles de la sesión. para ver las propiedades de la sesión, los registros 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 sin servidores de Dataproc.
Para ver y administrar lotes de Dataproc Serverless, haz lo siguiente:
- Haz clic en la pestaña Lotes para ver la lista de lotes de Dataproc Serverless en la proyecto y región actuales. Haz clic en un ID de lote para ver sus detalles.
Para ver y administrar clústeres de Dataproc en Compute Engine, haz lo siguiente:
- Haz clic en la tarjeta Clústeres. Se selecciona la pestaña Clústeres para mostrar la lista clústeres activos de Dataproc on Compute Engine 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.
Para ver y administrar trabajos de Dataproc en Compute Engine, sigue estos pasos:
- 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.