Aprende a usar Dataproc Serverless para las sesiones interactivas de Spark a fin de escribir y ejecutar código en notebooks de Jupyter.
Limitaciones de la versión preliminar
- Los trabajos de Spark se ejecutan con la identidad de la cuenta de servicio, no con la identidad del usuario que envía la información.
- Las métricas de facturación no se registran en Stackdriver (Dataproc para Spark Serverless Interactive es sin costo durante la vista previa).
- Las GPU aún no son compatibles.
- Las sesiones finalizan después de 24 horas, sin importar la configuración de la propiedad
max session time
en la plantilla del entorno de ejecución. Se quitará esta limitación en la versión de DG.
Antes de comenzar
- 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.
-
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
Crea un Dataproc para la sesión interactiva sin servidores de Spark
Abrirás los notebooks de Jupyter en Dataproc sin servidores para las sesiones interactivas de Spark. Durante la versión preliminar interactiva sin servidores de Dataproc, puedes crear una sesión de dos maneras:
Usa el complemento de JupyterLab de JupyterLab para crear plantillas que los usuarios puedan usar a fin de iniciar sesiones según la configuración de plantillas.
Usar Vertex AI Workbench para crear una sesión administrada por Google
Complemento de JupyterLab
En las siguientes secciones, se muestra cómo crear un administrador de usuarios de Dataproc Serverless para una sesión interactiva de Spark con el complemento de JupyterLab de Dataproc.
Configura tu máquina
Puedes configurar y ejecutar esta guía de inicio rápido en una máquina que tenga acceso a los servicios de Google, como tu máquina local o una instancia de VM de Compute Engine.
Asegúrate de que
Python 3.8+
esté instalado en tu máquina. Puedes descargar y, luego, instalar Python desdepython.or/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
Se abrirá la página del selector de Jupyter 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 sin servidores de Dataproc para 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 en 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 la 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 la sección Notebooks de clústeres de Dataproc de la página Launcher de JupyterLab.Completa el formulario Plantilla del entorno de ejecución.
Especifica un Nombre visible y una Descripción y, luego, ingresa o confirma los demás parámetros 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 Antes de comenzar no está habilitada para el Acceso privado a Google, debes habilitarla para el Acceso privado a Google o seleccionar 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: Puedes seleccionar usar los campos de esta sección a fin de seleccionar un servicio de Dataproc Metastore disponible para usar en tu sesión.
Tiempo de inactividad máximo: Tiempo máximo de inactividad del notebook antes de que se finalice la sesión de forma automática. Rango permitido: Entre 10 minutos y 336 horas (14 días).
Tiempo máximo de sesión: Es la vida útil máxima de una sesión antes de que esta se finalice automáticamente. Rango permitido: Entre 10 minutos y 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 la sesión y después de ella.
Propiedades de Spark: Haz clic en Agregar propiedad en cada propiedad para configurarla en tus sesiones de Spark sin servidores. Consulta Configuración de red de Dataproc Serverless para Spark a fin de obtener una explicación de las propiedades de Spark compatibles y no compatibles.
Etiquetas: Haz clic en Agregar etiqueta para cada etiqueta a fin de configurar tus sesiones de Spark sin servidores.
En la página Configuración de Dataproc, se enumeran tus plantillas de entorno de ejecución. Puedes borrar una plantilla de la lista del menú Acción para cada plantilla de la lista.
Haz clic en Guardar.
Abre y vuelve a cargar la página Selector (Launcher) para ver la tarjeta de la plantilla de notebook guardada en el selector de JupyterLab.
gcloud
Crea un archivo YAML con la configuración de tu plantilla del entorno de ejecución.
Ejemplo:
environmentConfig: executionConfig: networkUri: default jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing 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, debes habilitarla para el Acceso privado a Google o seleccionar 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.Ejecuta el siguiente comando gcloud beta Dataproc session-templates import de forma local o en Cloud Shell para crear una plantilla de sesión (entorno de ejecución) a partir de un archivo YAML.
gcloud beta dataproc session-templates import TEMPLATE_ID \ --source=YAML_FILE \ --project=PROJECT_ID \ --location=REGION
- Consulta gcloud beta dataproc session-templates para ver comandos que permiten describir, enumerar, exportar y borrar plantillas de sesión.
Abre un notebook
En la sección Notebooks sin servidores de Dataproc, en la página Launcher de JupyterLab, se muestran tarjetas de plantillas de notebook que se asignan a los kernels de entorno de ejecución que especifican tus plantillas de entorno de ejecución sin servidores.
Haz clic en una tarjeta de kernel del entorno de ejecución para crear una sesión y abrir un notebook. Cuando se completa la creación de la sesión y el kernel está listo para usarse, el estado del kernel cambia de
Unknown
aIdle
y se abre un notebook.Para ver el estado de la sesión, haz clic en la tarjeta Sin servidores en la sección Trabajos y sesión de Dataproc de la página del selector de JupyterLab y, luego, haz clic en la pestaña Sesiones. El estado de la sesión cambia de
Creating
aActive
cuando la sesión está completamente aprovisionada y lista para ejecutar tu código.Escribe y prueba el código en el notebook.
Copia y pega el siguiente código
Pi estimation
de PySpark en la celda del notebook de PySpark y, luego, presiona Mayúsculas + Retorno 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 en el notebook:
Después de crear y usar un notebook, puedes hacer clic en Cerrar kernel en la pestaña Kernel para finalizar la sesión del notebook.
- Si no cierras la sesión, Dataproc la finalizará cuando finalice 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.
Vertex AI
En esta sección, se muestra cómo usar Vertex AI Workbench para crear una sesión administrada y, luego, abrir y usar un notebook de PySpark en la sesión.
- Ve a la página Vertex AI Workbench en la consola de Google Cloud. Haz clic en Nuevo notebook para abrir un notebook administrado nuevo.
- Completa los campos de la página Crear un notebook administrado:
- Nombre del notebook: Ingresa un nombre para el notebook.
- Región: Selecciona una región de la lista. Los notebooks administrados de Vertex AI están disponibles en las regiones enumeradas.
- Permiso: Selecciona
Single user only
. - Correo electrónico del usuario: Ingresa tu dirección de correo electrónico.
- Haz clic en Crear para crear el notebook y volver a la página Vertex AI Workbench.
- Su notebook aparece en la página Vertex AI Workbench. Haz clic en Abrir JupyterLab en la fila de tu notebook después de habilitar este vínculo.
- En el diálogo Autenticar tu notebook administrado que aparece, haz clic en Autenticar para permitir que Vertex AI Workbench acceda a tus datos y autentica tu notebook administrado. Luego, selecciona tu cuenta y permite el acceso para abrir JupyterLab.
- En la pestaña Selector del notebook, selecciona Spark sin servidores para crear una sesión.
- Completa la página Crear una sesión de Spark sin servidores:
- Nombre de la sesión: Ingresa un nombre para la sesión. Cada sesión admite un notebook de Jupyter.
- Idioma: Selecciona PySpark.
- Configuración de la ejecución: Deja el elemento de la cuenta de servicio vacío para usar la cuenta de servicio predeterminada de Compute Engine.
- Configuración de red:
- Haz clic en Redes de este proyecto. La subred de VPC que ejecuta una sesión debe cumplir con los requisitos que se mencionan en Configuración de red de Dataproc Serverless para Spark.
- En la lista, selecciona una red y una subred dentro de tu proyecto. En la lista, se muestran las subredes de la red seleccionada que están habilitadas para el Acceso privado a Google.
- Haz clic en Submit: para iniciar la sesión. En el Registro de actividad, se muestra el progreso de la inicialización de la sesión. También puedes supervisar el estado de tu sesión desde la página Sesiones de Dataproc en la consola de Google Cloud.
- Cuando se completa la inicialización de la sesión, se abre una pestaña del notebook Untitled.ipynb en JupyterLab. Copia y pega el siguiente código
Pi estimation
de PySpark en la celda del notebook de PySpark y, luego, presiona Mayúsculas + Retorno 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))
- Cierra la pestaña del notebook Untitled.ipynb. Dataproc Serverless intenta detectar y finalizar la sesión después de que cierras un notebook en JupyterLab.