La API WorkflowTemplates de Dataproc es un mecanismo flexible y fácil de usar para gestionar y ejecutar flujos de trabajo. Las plantillas de flujos de trabajo son configuraciones de flujos de trabajo reutilizables. Define un gráfico de tareas con información sobre dónde ejecutar esas tareas.
Puntos clave:
- Crear una instancia de una plantilla de flujo de trabajo inicia un flujo de trabajo. Los flujos de trabajo son operaciones que ejecutan un grafo acíclico dirigido (DAG) de las tareas de un clúster.
- Si el flujo de trabajo usa un clúster gestionado, crea el clúster, ejecuta los trabajos y, a continuación, elimina el clúster cuando se completan los trabajos.
- Si el flujo de trabajo usa un selector de clústeres, ejecuta tareas en un clúster ya creado.
- Los flujos de trabajo son ideales para flujos de trabajo complejos. Puedes crear dependencias de trabajos para que un trabajo se inicie solo después de que sus dependencias se completen correctamente.
- Cuando creas una plantilla de flujo de trabajo, Dataproc no crea ningún clúster ni envía tareas a un clúster. Dataproc crea o selecciona un clúster y ejecuta tareas de flujo de trabajo en él 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 gestionado. El flujo de trabajo creará un clúster efímero para ejecutar los trabajos del flujo de trabajo y, a continuación, eliminará el clúster cuando se complete el flujo de trabajo.
Selector de clústeres
Una plantilla de flujo de trabajo puede especificar un clúster en el que ejecutar tareas de flujo de trabajo. Para ello, debe especificar una o varias etiquetas de usuario que se hayan adjuntado previamente al clúster. El flujo de trabajo se ejecutará en un clúster que coincida con todas las etiquetas. Si varios clústeres coinciden con todas las etiquetas, Dataproc selecciona el clúster con la mayor cantidad de memoria disponible de YARN para ejecutar todos los trabajos del flujo de trabajo. Al final del flujo de trabajo, Dataproc no elimina el clúster seleccionado. Consulta más información en el artículo Usar selectores de clústeres con flujos de trabajo.
Parametrizado
Si vas a ejecutar una plantilla de flujo de trabajo varias veces con valores diferentes, usa parámetros para no tener que editarla cada vez:
Defina los parámetros en la plantilla y, a continuación,
Enviar valores diferentes para los parámetros en cada ejecución.
Para obtener más información, consulta el artículo sobre la parametrización de plantillas de flujo de trabajo.
Insertada
Los flujos de trabajo se pueden crear de forma insertada mediante el comando gcloud
con archivos YAML de plantillas de flujo de trabajo o llamando a la API InstantiateInline de Dataproc (consulta Usar flujos de trabajo de Dataproc insertados).
Los flujos de trabajo insertados no crean ni modifican recursos de plantillas de flujos de trabajo.
Casos prácticos de plantillas de flujo de trabajo
Automatización de tareas repetitivas. Los flujos de trabajo encapsulan las configuraciones y los trabajos de clúster que se usan con frecuencia.
Modelo de interacción de API transaccional de tipo "fire and forget". Las plantillas de flujo de trabajo sustituyen los pasos de un flujo típico, que incluyen lo siguiente:
- crear el clúster
- enviar tareas
- sondeo
- eliminar el clúster
Las plantillas de flujo de trabajo usan un solo token para monitorizar el progreso desde la creación del clúster hasta su eliminación, así como para automatizar la gestión de errores y la recuperación. También simplifican la integración de Dataproc con otras herramientas, como las funciones de Cloud Run y Cloud Composer.
Compatibilidad con clústeres efímeros y de larga duración. Una de las complejidades habituales asociadas a la ejecución de Apache Hadoop es la optimización y el ajuste del tamaño de los clústeres. Los clústeres efímeros (gestionados) son más fáciles de configurar, ya que ejecutan una sola carga de trabajo. Los selectores de clústeres se pueden usar con clústeres de mayor duración para ejecutar repetidamente la misma carga de trabajo sin incurrir en el coste amortizado de crear y eliminar clústeres.
Seguridad de la gestión de identidades y accesos pormenorizada. Para crear clústeres de Dataproc y enviar tareas, se necesitan permisos de gestión de identidades y accesos de todo o nada. Las plantillas de flujo de trabajo usan el permiso workflowTemplates.instantiate por plantilla y no dependen de los permisos de clúster o de trabajo.