En este documento, usarás los siguientes componentes facturables de Google Cloud:
- Dataproc
- Compute Engine
- Cloud Scheduler
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Antes de comenzar
Configura tu proyecto
- 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc, Compute Engine, and Cloud Scheduler APIs.
- 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.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc, Compute Engine, and Cloud Scheduler APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Crea un rol personalizado
- Abre la pestaña IAM y Administrador → Roles
en la consola de Google Cloud.
- Haz clic en CREAR FUNCIÓN para abrir la página Crear función.
- Completa los campos Título, Descripción, ID, Inicio de la etapa. Sugerencia: Usa "Creación de plantilla de flujo de trabajo de Dataproc" como título de la función.
- Haz clic en AGREGAR PERMISOS,
- En el formulario Agregar permisos, haz clic en Filtro y, luego, selecciona “Permiso”. Completa el filtro para leer “Permiso: dataproc.workflowTemplates.instantiate”.
- Haz clic en la casilla de verificación a la izquierda del permiso que aparece y, luego, haz clic en AGREGAR.
- En la página Crear función, vuelve a hacer clic en AGREGAR PERMISOS para repetir los pasos secundarios anteriores a fin de agregar el permiso “iam.serviceAccounts.actAs” a la función personalizada. En la página Crear función, se enumeran dos permisos.
- Haz clic en CREAR en la página Función personalizada. La función personalizada se enumera en la página Funciones.
Crea una cuenta de servicio
En la consola de Google Cloud, ve a la página Cuentas de servicio.
Elige tu proyecto.
Haz clic en
Crear cuenta de servicio.En el campo Nombre de la cuenta de servicio, ingresa el nombre
workflow-scheduler
. La consola de Google Cloud completa el campo ID de cuenta de servicio según este nombre.Opcional: En el campo Descripción de la cuenta de servicio, ingresa una descripción para la cuenta de servicio.
Haz clic en Crear y continuar.
Haz clic en el campo Seleccionar un rol y elige la plantilla de flujo de trabajo de Dataproc. Crea el rol personalizado que creaste en el paso anterior.
Haga clic en Continuar.
En el campo Rol de administradores de cuentas de servicio, ingresa la dirección de correo electrónico de tu cuenta de Google.
Haz clic en Listo para terminar de crear la cuenta de servicio.
Crea una plantilla de flujo de trabajo
Copia y ejecuta los comandos que se indican a continuación en una ventana de la terminal local o en Cloud Shell para crear y definir una plantilla de flujo de trabajo.
Notas:
- Los comandos especifican la región “us-central1”. Puedes especificar una región diferente o borrar la marca
--region
si ejecutastegcloud config set compute/region
para establecer la propiedad de la región. - La secuencia "-- " (guion guion espacio) del comando
add-job
pasa el argumento1000
al trabajo de SparkPi, que especifica el número de muestras que se usarán para estimar el valor de Pi.
- Crea la plantilla de flujo de trabajo.
gcloud dataproc workflow-templates create sparkpi \ --region=us-central1
- Agrega el trabajo de Spark a la plantilla de flujo de trabajo de SparkPi. Es obligatorio el ID del paso de “procesamiento” y, además, identifica el trabajo de SparkPi agregado.
gcloud dataproc workflow-templates add-job spark \ --workflow-template=sparkpi \ --step-id=compute \ --class=org.apache.spark.examples.SparkPi \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --region=us-central1 \ -- 1000
- Usa un clúster administrado y de un solo nodo para ejecutar el flujo de trabajo. Dataproc creará el clúster, ejecutará el flujo de trabajo en él y, luego, borrará el clúster cuando este se complete.
gcloud dataproc workflow-templates set-managed-cluster sparkpi \ --cluster-name=sparkpi \ --single-node \ --region=us-central1
- Haz clic en el nombre de
sparkpi
en el Dataproc Flujos de trabajo en la consola de Google Cloud para abrir la Página Detalles de la plantilla de flujo de trabajo. Confirma los atributos de la plantilla de Sparkpi.
Crea un trabajo de Cloud Scheduler
Abre la página de Cloud Scheduler en la consola de Google Cloud (es posible que debas seleccionar tu proyecto para abrir la página). Haz clic en CREAR TRABAJO.
Ingresa o selecciona la siguiente información del trabajo:
- Selecciona una región: “us-central” o cualquier otra región en la que creaste la plantilla de flujo de trabajo.
- Nombre: "sparkpi"
- Frecuencia: "* * * * *" selecciona cada minuto. “0 9 * * 1” selecciona todos los lunes a las 9 a.m. Consulta Cómo definir el programa del trabajo para conocer otros valores unix-cron. Nota: Podrás hacer clic en EJECUTAR AHORA. en el botón Trabajos de Cloud Scheduler en la consola de Google Cloud para ejecutar y probar tu trabajo sin importar la frecuencia que establezcas en tu trabajo.
- Zona horaria: Selecciona tu timezone. Escriba “Estados Unidos” para enumerar las zonas horarias de EE.UU.
- Destino: “HTTP”
- URL: Inserta la siguiente URL después de insertar your-project-id. Reemplaza “us-central1” si creaste tu plantilla de flujo de trabajo en una región diferente. Esta URL llamará a la API de
workflowTemplates.instantiate
de Dataproc para ejecutar la plantilla de flujo de trabajo de SparkPi.https://dataproc.googleapis.com/v1/projects/your-project-id/regions/us-central1/workflowTemplates/sparkpi:instantiate?alt=json
- Método HTTP:
- "POST"
- Cuerpo: "{}"
- Encabezado de Auth:
- “Agrega token de OAuth”
- Cuenta de servicio: Inserta el service account address de la cuenta de servicio que creaste para este instructivo.
Puedes usar la siguiente dirección de cuenta después de insertar your-project-id:
workflow-scheduler@your-project-id.iam.gserviceaccount.com
- Permiso: Puedes ignorar este elemento.
- Haga clic en CREAR.
Prueba tu trabajo de flujo de trabajo programado
En la fila del trabajo de
sparkpi
en la página Trabajos de Cloud Scheduler haz clic en EJECUTAR AHORA.Espera unos minutos y, luego, abre la página Flujos de trabajo de Dataproc para verificar que se haya completado el flujo de trabajo de sparkpi.
Después de que el flujo de trabajo borra el clúster administrado, los detalles del trabajo persistentes en la consola de Google Cloud. Haz clic en el trabajo
compute...
que aparece en la página Trabajos de Dataproc para ver los detalles del trabajo de flujo de trabajo.
Realiza una limpieza
El flujo de trabajo de este instructivo borra su clúster administrado cuando se completa. Mantener el flujo de trabajo te permite volver a ejecutarlo y no genera cargos. Puedes borrar otros recursos que creaste en este instructivo para evitar costos recurrentes.
Borra un proyecto
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Borra la plantilla de flujo de trabajo
gcloud dataproc workflow-templates delete sparkpi \ --region=us-central1
Borra tu trabajo de Cloud Scheduler
Abre los Trabajos de Cloud Scheduler
en la consola de Google Cloud, selecciona la casilla a la izquierda de sparkpi
y haz clic en DELETE.
Borra tu cuenta de servicio
Abre la página IAM y administración → Cuentas de servicio en la consola de Google Cloud, selecciona la casilla a la izquierda de la cuenta de servicio workflow-scheduler...
y, luego, haz clic en BORRAR.
¿Qué sigue?
- Consulta Descripción general de las plantillas de flujos de trabajo de Dataproc
- Consulta Soluciones de programación del flujo de trabajo