Descripción general de las plantillas de flujo de trabajo de Managed Service para Apache Spark

La API de WorkflowTemplates de Managed Service para Apache Spark proporciona un mecanismo flexible y fácil de usar 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 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.
  • Los flujos de trabajo son ideales para flujos de trabajo complejos. Puedes crear dependencias de trabajos para que un trabajo comience solo después de que sus dependencias se completen correctamente.
  • Cuando creas una plantilla de flujo de trabajo, Managed Service para Apache Spark no crea un clúster ni envía trabajos a un clúster. Managed Service 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 se ejecutarán los trabajos de flujo de trabajo especificando una o más etiquetas de usuario adjuntas 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, Managed Service para Apache Spark 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, Managed Service para Apache Spark no borra el clúster seleccionado. Consulta Usa selectores de clústeres con flujos de trabajo para obtener más información.

Parametrizado

Si ejecutarás una plantilla de flujo de trabajo varias veces con valores diferentes, usa parámetros para evitar editar la plantilla de flujo de trabajo para cada ejecución:

  1. definir parámetros en la plantilla y, luego,

  2. pasa valores diferentes para los parámetros de cada ejecución.

Consulta Parametrización de plantillas de flujo de trabajo para obtener más información.

Intercalado

Workflows se pueden instanciar de forma intercalada con el comando gcloud con archivos YAML de plantilla de flujo de trabajo o llamando a la API de Managed Service para Apache Spark InstantiateInline (consulta Usa flujos de trabajo intercalados de Dataproc). Los flujos de trabajo intercalados no crean ni modifican recursos de plantillas de flujo de trabajo.

Casos de uso de las plantillas de flujo de trabajo

  • Automatización de tareas repetitivas. Los flujos de trabajo encapsulan las configuraciones y los trabajos de clúster de uso frecuente.

  • Modelo de interacción de la API transaccional de tipo "fire-and-forget" Las plantillas de flujo de trabajo reemplazan los pasos que se incluyen en un flujo típico, que son los siguientes:

    1. crear el clúster
    2. enviar trabajos
    3. sondeo
    4. borrar el clúster

    Las plantillas de flujo de trabajo usan un solo token para hacer un seguimiento del progreso 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 de Managed Service para Apache Spark con otras herramientas, como Cloud Run Functions y Managed Service para Apache Airflow.

  • 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ústeres se pueden usar con clústeres de mayor duración para ejecutar de forma repetida 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 de Managed Service 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 workflowTemplates.instantiate por plantilla y no dependen de permisos de clúster o trabajo.