GSP010
Descripción general
En este lab práctico, aprenderás a usar Apache Spark administrado para distribuir una tarea de procesamiento de imágenes intensiva desde un punto de vista informático en un clúster de máquinas. Este lab es parte de una serie de labs sobre procesamiento de datos científicos.
Qué aprenderás
- Cómo crear un clúster de Apache Spark administrado con Apache Spark preinstalado
- Cómo crear y ejecutar trabajos que usen paquetes externos aún no instalados en tu clúster
- Cómo cerrar tu clúster
Requisitos previos
Este es un lab de nivel avanzado. Se recomienda tener conocimientos de Apache Spark administrado y Apache Spark, aunque no es obligatorio. Si quieres ponerte al día con estos servicios, asegúrate de consultar los siguientes labs:
Cuando tengas todo listo, desplázate hacia abajo para obtener más información sobre los servicios que usarás en este lab.
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
- Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago.
A la derecha, se encuentra el panel Configuración del lab y acceso, que tiene los siguientes elementos:
- El botón Abrir la consola de Google Cloud
- Las credenciales temporales (nombre de usuario y contraseña) que debes usar para este lab
- Otra información para completar el lab (si es necesaria)
Ten en cuenta que el cronómetro del lab se encuentra cerca de la parte superior de la página y muestra el tiempo restante.
-
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia los recursos y abre otra pestaña, en la que se muestra la página de acceso.
Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usa otra cuenta.
-
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}}
También puedes encontrar el nombre de usuario en el panel Configuración del lab y acceso.
-
Haz clic en Siguiente.
-
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}}
También puedes encontrar la contraseña en el panel Configuración del lab y acceso.
-
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud.
Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
-
Haz clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación ni autenticación de dos factores, ya que esta cuenta es temporal.
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar.
Introducción
Apache Spark administrado es un servicio administrado de Spark y Hadoop con el que puedes aprovechar herramientas de datos de código abierto para ejecutar procesamiento por lotes, consultas, transmisiones y aprendizaje automático. Con la automatización de Apache Spark administrado, podrás crear clústeres con rapidez, administrarlos fácilmente y ahorrar dinero desactivándolos cuando no los necesites. Gracias a los ahorros de tiempo y dinero en tareas de administración, podrás enfocarte en tus trabajos y datos.
Procura usar Apache Spark administrado para escalar horizontalmente trabajos de procesamiento intensivo que cumplan con estas características:
- El trabajo tiene paralelismo trivial; es decir, puedes procesar diferentes subconjuntos de datos en distintas máquinas.
- Ya tienes el código de Apache Spark que realiza el procesamiento o ya tienes conocimientos de Apache Spark.
- La distribución del trabajo es bastante uniforme en todos tus subconjuntos de datos.
Si los diferentes subconjuntos requieren distinta cantidad de procesamiento (o si todavía no conoces Apache Spark), Apache Beam en Cloud Dataflow es una alternativa interesante porque proporciona canalizaciones de datos con escalado automático.
En este lab, el trabajo que ejecutarás marca los contornos de los rostros de una imagen a través de un conjunto de reglas de procesamiento de imágenes especificado en OpenCV. Usar la API de Vision es una manera más eficaz de hacer esto, ya que este tipo de reglas codificadas a mano no funcionan demasiado bien, pero este lab es un ejemplo de cómo realizar un trabajo de procesamiento intensivo de forma distribuida.
Tarea 1: Crea una máquina de desarrollo en Compute Engine
Primero, crea una máquina virtual para alojar tus servicios.
- En la consola de Cloud, ve a Compute Engine > Instancias de VM > Crear instancia.

-
En Configuración de la máquina.
Selecciona el siguiente valor:
-
Nombre:
devhost
-
Serie:
E2
-
Tipo de máquina:
e2-standard-2 (2 CPU virtuales)
-
Haz clic en Seguridad.
- En la sección Permisos de acceso, selecciona Permitir el acceso total a todas las APIs de Cloud.
-
Haz clic en Crear. Esta máquina funcionará como host de bastión de desarrollo.
Prueba la tarea completada
Haz clic en Revisar mi progreso para verificar la tarea realizada.
Crear una máquina de desarrollo en Compute Engine
- Establece una conexión SSH a la instancia haciendo clic en el botón SSH de la consola.
Tarea 2: Instala el software
Ahora, configura el software para que ejecute el trabajo. A través de sbt, una herramienta de compilación de código abierto, compilarás el archivo JAR para el trabajo que enviarás al clúster de Apache Spark administrado. Ese archivo contendrá el programa y los paquetes necesarios para ejecutar el trabajo. El trabajo detectará los rostros de un conjunto de archivos de imagen almacenado en un bucket de Cloud Storage y escribirá archivos de imagen con el contorno de los rostros en el mismo bucket de Cloud Storage o en otro.
- Configura Scala y sbt. En la ventana de SSH, instala
Scala y sbt con los siguientes comandos para poder compilar el código:
sudo apt-get install -y dirmngr unzip apt-transport-https bc scala
sudo apt-get update
sudo mkdir -p /etc/apt/keyrings
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x99E82A75642AC823" | sudo gpg --dearmor -o /etc/apt/keyrings/scalasbt-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/scalasbt-archive-keyring.gpg] https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
sudo apt-get update
sudo apt-get install -y sbt
Ahora, compilarás los archivos del detector de rasgos. El código de este lab corresponde a una leve modificación de una solución que existe en el repositorio de Apache Spark administrado en GitHub. Descargarás el código y, luego, ejecutarás cd para acceder al directorio de este lab y compilarás un archivo "fat JAR" del detector de rasgos para poder enviarlo a Apache Spark administrado.
- Ejecuta los siguientes comandos en la ventana de SSH:
gcloud storage cp gs://spls/gsp124/cloud-dataproc.zip .
unzip cloud-dataproc.zip
cd cloud-dataproc/codelabs/opencv-haarcascade
echo "sbt.version=1.9.8" > project/build.properties
- Inicia la compilación. Con este comando, se compila un archivo "fat JAR" del detector de rasgos para poder enviarlo a Apache Spark administrado:
sed -i 's/scalaVersion := "2.12.*/scalaVersion := "2.12.19"/' build.sbt
sbt assembly
Nota: Este paso demorará un poco más de cinco minutos en completarse. Ten paciencia.
Prueba la tarea completada
Haz clic en Revisar mi progreso para verificar la tarea realizada.
Instalar software en la máquina de desarrollo
Tarea 3: Crea un bucket de Cloud Storage y recopila imágenes
Ahora que ya compilaste los archivos del detector de rasgos, crea un bucket de Cloud Storage y agrégale algunas imágenes de muestra.
- Recupera el ID del proyecto que se usará para asignarle un nombre a tu bucket:
GCP_PROJECT=$(gcloud config get-value core/project)
- Asígnale un nombre a tu bucket y establece en ese nombre una variable de shell, que se usará en comandos que hagan referencia al bucket:
MYBUCKET="${USER//google}-image-${RANDOM}"
echo MYBUCKET=${MYBUCKET}
- Usa el programa
gsutil, que se incluye con gcloud en el SDK de Cloud, para crear un bucket que contenga tus imágenes de muestra:
gcloud storage buckets create gs://${MYBUCKET}
Prueba la tarea completada
Haz clic en Revisar mi progreso para verificar la tarea realizada.
Crear un bucket de Cloud Storage
- Descarga algunas imágenes de muestra en tu bucket:
curl https://www.publicdomainpictures.net/pictures/20000/velka/family-of-three-871290963799xUk.jpg | gcloud storage cp - gs://${MYBUCKET}/imgs/family-of-three.jpg
curl https://www.publicdomainpictures.net/pictures/10000/velka/african-woman-331287912508yqXc.jpg | gcloud storage cp - gs://${MYBUCKET}/imgs/african-woman.jpg
curl https://www.publicdomainpictures.net/pictures/10000/velka/296-1246658839vCW7.jpg | gcloud storage cp - gs://${MYBUCKET}/imgs/classroom.jpg
Acabas de descargar las siguientes imágenes en tu bucket de Cloud Storage:



Prueba la tarea completada
Haz clic en Revisar mi progreso para verificar la tarea realizada.
Descargar algunas imágenes de muestra en tu bucket
- Ejecuta el siguiente comando para ver el contenido del bucket:
gcloud storage ls -R gs://${MYBUCKET}
Resultado:
gs://gcpstaging20392-student-image-23218/imgs/:
gs://gcpstaging20392-student-image-23218/imgs/african-woman.jpg
gs://gcpstaging20392-student-image-23218/imgs/classroom.jpg
gs://gcpstaging20392-student-image-23218/imgs/family-of-three.jpg
`
Tarea 4: Crea un clúster de Apache Spark administrado
- Ejecuta los siguientes comandos en la ventana de SSH para asignarle un nombre al clúster y configurar la variable
MYCLUSTER. Usarás la variable en comandos para hacer referencia al clúster:
MYCLUSTER="${USER/_/-}-qwiklab"
echo MYCLUSTER=${MYCLUSTER}
- Establece una región global de Compute Engine para crear y usar un nuevo clúster:
gcloud config set dataproc/region {{{project_0.default_region | "REGION"}}}
gcloud dataproc clusters create ${MYCLUSTER} \
--bucket=${MYBUCKET} \
--worker-machine-type=e2-standard-2 \
--master-machine-type=e2-standard-2 \
--initialization-actions=gs://spls/gsp010/install-libgtk.sh \
--image-version=2.0 \
--worker-boot-disk-size=30GB \
--master-boot-disk-size=30GB
- Si se te solicita usar una zona en lugar de una región, ingresa Y.
Este proceso podría tardar unos minutos. La configuración predeterminada del clúster, que incluye dos nodos trabajadores, debería ser suficiente para este lab. Para reducir la cantidad general de núcleos que usa el clúster, se especifica e2-standard-2 como el tipo de máquina de instancia principal y de trabajador.
Para la marca initialization-actions, pasarás una secuencia de comandos que instala la biblioteca libgtk2.0-dev en cada una de las máquinas del clúster. Esta biblioteca se necesitará para ejecutar el código.
Nota:
Si el clúster no se crea, intenta borrar tu clúster (gcloud dataproc clusters delete ${MYCLUSTER}) y, luego, vuelve a ejecutar el comando anterior de creación de clúster.
Prueba la tarea completada
Haz clic en Revisar mi progreso para verificar la tarea realizada.
Crear un clúster de Apache Spark administrado
Nota: Si quieres obtener más información sobre cómo usar marcas de línea de comandos para personalizar la configuración de clústeres, consulta la referencia del SDK de Cloud gcloud dataproc clusters create.
Tarea 5: Envía un trabajo al clúster de Apache Spark administrado
En este lab, el programa que ejecutas se usa como un detector de rostros, por lo que el clasificador haar ingresado debe describir un rostro. Un clasificador haar es un archivo en formato XML que se usa para describir rasgos que detectará el programa. Descargarás el archivo del clasificador haar y, luego, incluirás su ruta de acceso de Cloud Storage en el primer argumento cuando envíes tu trabajo al clúster de Apache Spark administrado.
- Ejecuta el siguiente comando en la ventana de SSH para cargar el archivo de configuración de detección de rostro en tu bucket:
curl https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_default.xml | gcloud storage cp - gs://${MYBUCKET}/haarcascade_frontalface_default.xml
- Usa el conjunto de imágenes que subiste al directorio
imgs en el bucket de Cloud Storage como datos de entrada para el detector de rasgos. Debes incluir la ruta de acceso a ese directorio como segundo argumento del comando de envío del trabajo.
- Envía tu trabajo a Apache Spark administrado:
cd ~/cloud-dataproc/codelabs/opencv-haarcascade
gcloud dataproc jobs submit spark \
--cluster ${MYCLUSTER} \
--jar target/scala-2.12/feature_detector-assembly-1.0.jar -- \
gs://${MYBUCKET}/haarcascade_frontalface_default.xml \
gs://${MYBUCKET}/imgs/ \
gs://${MYBUCKET}/out/
Puedes agregar otras imágenes al bucket de Cloud Storage especificado en el segundo argumento.
- Para supervisar el trabajo, en la consola de Google Cloud, selecciona Menú de navegación > Ver todos los productos. Luego, en Análisis, haz clic en Apache Spark administrado > Trabajos.
Cuando veas un estado sin errores, podrás continuar con los próximos pasos.

Prueba la tarea completada
Haz clic en Revisar mi progreso para verificar la tarea realizada.
Enviar un trabajo al clúster de Apache Spark administrado
-
Cuando se complete el trabajo, ve al menú de navegación > Cloud Storage. Busca el bucket que creaste (tendrá tu nombre de usuario seguido de student-image y de un número aleatorio) y haz clic en él.
-
Haz clic en la imagen del directorio Out.
-
Haz clic en el ícono de descarga, y la imagen se descargará en tu computadora.
¿Qué tan exacta es la detección de rostro? Usar la API de Vision es una manera más eficaz de hacer esto, ya que este tipo de reglas codificadas a mano no funcionan demasiado bien. A continuación, podrás ver cómo funciona.
-
En tu bucket, ve a la carpeta imgs y haz clic en las otras imágenes que subiste al bucket (opcional). Se descargarán las tres imágenes de muestra. Guárdalas en tu computadora.
-
Haz clic en este vínculo para ir a la página de la API de Vision, desplázate hacia abajo hasta la sección Probar la API y sube las imágenes que descargaste de tu bucket. En apenas segundos, verás los resultados de la detección de imágenes. Dado que los modelos subyacentes de aprendizaje automático mejoran constantemente, es posible que los resultados difieran:

- Si quieres experimentar y mejorar el detector de rasgos, puedes realizar cambios en el código de
FeatureDetector y, luego, volver a ejecutar sbt assembly y los comandos gcloud dataproc y jobs submit (opcional).
Tarea 6: Pon a prueba tus conocimientos
Aquí tienes algunas preguntas de opción múltiple para reforzar tus conocimientos de los conceptos de este lab. Trata de responderlas lo mejor posible.
¡Felicitaciones!
Aprendiste a iniciar un clúster de Apache Spark administrado y a ejecutar trabajos.
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Última actualización del manual: 6 de julio de 2026
Prueba más reciente del lab: 6 de julio de 2026
Copyright 2026 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.