La API de WorkflowTemplates del servicio administrado para Apache Spark proporciona un mecanismo fácil de usar y flexible para administrar y ejecutar flujos de trabajo. Una plantilla de flujo de trabajo es una configuración reutilizable de flujo de trabajo. Define un grafo de trabajos con información sobre dónde ejecutar esos trabajos.
Puntos clave:
- La creación de una instancia de una plantilla de trabajo
inicia un flujo de trabajo. Un flujo de trabajo es una operación que ejecuta un
grafo acíclico dirigido (DAG)
de los trabajos en un clúster.
- Si el flujo de trabajo usa un clúster administrado, crea el clúster, ejecuta los trabajos y, luego, borra el clúster cuando finalizan los trabajos.
- Si el flujo de trabajo usa un selector de clúster, ejecuta trabajos en un clúster seleccionado existente.
- Workflows son ideales para flujos de trabajo complejos. Puedes crear dependencias de trabajo de manera tal que un trabajo comience solo después de que las dependencias se completen con éxito.
- Cuando creas una plantilla de flujo de trabajo, el servicio administrado para Apache Spark no crea un clúster ni envía trabajos a un clúster. El servicio administrado para Apache Spark crea o selecciona un clúster y ejecuta trabajos de flujo de trabajo en el clúster cuando se crea una instancia de una plantilla de flujo de trabajo.
Tipos de plantillas de flujo de trabajo
Clúster administrado
Una plantilla de flujo de trabajo puede especificar un clúster administrado. El flujo de trabajo creará un clúster "efímero" para ejecutar trabajos de flujo de trabajo y, luego, borrará el clúster cuando finalice el flujo de trabajo.
Selector de clústeres
Una plantilla de flujo de trabajo puede especificar un clúster existente en el que ejecutar trabajos de flujo de trabajo mediante la especificación de una o más etiquetas de usuario que se adjuntaron antes al clúster. El flujo de trabajo se ejecutará en un clúster que coincida con todas las etiquetas. Si muchos clústeres coinciden con todas las etiquetas, el servicio administrado para Apache Spark seleccionará el clúster con la mayor disponibilidad de memoria YARN para ejecutar todos los trabajos de flujo de trabajo. Al final del flujo de trabajo, el servicio administrado para Apache Spark no borra el clúster seleccionado. Consulta Usa selectores de clúster con flujos de trabajo para obtener más información.
Parametrizado
Si quieres ejecutar una plantilla de flujo de trabajo muchas veces con valores diferentes, usa parámetros para evitar la edición de la plantilla en cada ejecución:
define parámetros en la plantilla y, luego,
pasa valores diferentes para los parámetros en cada ejecución.
Consulta Parametrización de plantillas de flujo de trabajo para obtener más información.
Intercalado
Se pueden crear Workflows intercaladas mediante el comando de gcloud con
archivos YAML de plantillas de flujo de trabajo o mediante una llamada a la API de
InstantiateInline
del servicio administrado para Apache Spark (consulta Usa flujos de trabajo intercalados de Dataproc).
Los flujos de trabajo intercalados no crean o modifican los recursos de las plantillas de flujo de trabajo.
Casos de uso de plantillas de flujo de trabajo
Automatización de tareas repetitivas. Workflows encapsulan las configuraciones y los trabajos de clúster de uso frecuente.
Modelo de interacción de la API transaccional, enviar y olvidar Las plantillas de flujo de trabajo reemplazan los pasos involucrados en un flujo típico como:
- crear el clúster
- enviar trabajos
- sondeo
- borrar el clúster
Las plantillas de flujo de trabajo usan un token único para rastrear el proceso desde la creación hasta la eliminación del clúster y automatizan el manejo de errores y la recuperación. También simplifican la integración del servicio administrado para Apache Spark con otras herramientas, como Cloud Run Functions y Cloud Composer.
Asistencia para clústeres longevos y efímeros. Una complejidad común asociada con la ejecución de Apache Hadoop ajusta y acomoda el tamaño correcto de los clústeres. Los clústeres efímeros (administrados) son más fáciles de configurar debido a que ejecutan un solo flujo de trabajo. Los selectores de clúster se pueden usar con clústeres longevos para ejecutar varias veces la misma carga de trabajo sin incurrir en el costo amortizado de crear y borrar clústeres.
Seguridad de IAM detallada. La creación de clústeres del servicio administrado para Apache Spark y el envío de trabajos requieren permisos de IAM de todo o nada. Las plantillas de flujo de trabajo usan un permiso por plantilla workflowTemplates.instantiate y no dependen de permisos de clúster o trabajo.