Puedes configurar y ejecutar un flujo de trabajo si:
- Creas una plantilla de flujo de trabajo
- Configuras un clúster administrado (efímero) o seleccionas un clúster existente
- Agregas trabajos
- Creas una instancia de la plantilla para ejecutar el flujo de trabajo
Cómo crear una plantilla
gcloud CLI
Ejecuta el siguiente command
para crear un recurso de plantilla de flujo de trabajo de Dataproc.
gcloud dataproc workflow-templates create TEMPLATE_ID \ --region=REGION
Notas:
- REGION: Especifica la región en la que se ejecutará la plantilla.
- TEMPLATE_ID: Proporciona un ID para tu plantilla, como "workflow-template-1".
- Encriptación de CMEK Puedes agregar la marca --kms-key para usar la encriptación de CMEK en los argumentos de trabajo de la plantilla de flujo de trabajo.
API de REST
Envía una WorkflowTemplate como parte de una solicitud workflowTemplates.create. Puedes agregar el campo WorkflowTemplate.EncryptionConfig.kmsKey para usar la encriptación de CMEK en los argumentos de trabajo de la plantilla de flujo de trabajo. kmsKey
Console
Puedes ver las plantillas de flujo de trabajo existentes y los flujos de trabajo en los que se crearon instancias desde la página Flujos de trabajo de Dataproc en la consola de Google Cloud.
Cómo configurar o seleccionar un clúster
Dataproc puede crear y usar un clúster "administrado" nuevo para tu flujo de trabajo o un clúster existente.
Clúster existente: Consulta Cómo usar selectores de clúster con flujos de trabajo para seleccionar un clúster existente para tu flujo de trabajo.
Clúster administrado: Debes configurar un clúster administrado para tu flujo de trabajo. Dataproc creará este clúster nuevo para ejecutar trabajos de clúster y, luego, borrar el clúster al final del flujo de trabajo.
Puedes configurar un clúster administrado para tu flujo de trabajo con la herramienta de línea de comandos de
gcloud
o con la API de Dataproc.Comando de gcloud
Usa marcas heredadas de gcloud dataproc cluster create para configurar el clúster administrado, como la cantidad de trabajadores y el tipo de máquina principal y trabajadora. Dataproc agregará un sufijo al nombre del clúster para garantizar la exclusividad. Puedes usar la marca
--service-account
para especificar una cuenta de servicio de VM para el clúster administrado.gcloud dataproc workflow-templates set-managed-cluster TEMPLATE_ID \ --region=REGION \ --master-machine-type=MACHINE_TYPE \ --worker-machine-type=MACHINE_TYPE \ --num-workers=NUMBER \ --cluster-name=CLUSTER_NAME --service-account=SERVICE_ACCOUNT
API de REST
Consulta WorkflowTemplatePlacement.ManagedCluster, que puedes proporcionar como parte de una WorkflowTemplate completa, enviada con una solicitud workflowTemplates.create o workflowTemplates.update.
Puedes usar el campo
GceClusterConfig.serviceAccount
para especificar una cuenta de servicio de VM para el clúster administrado.Console
Puedes ver las plantillas de flujo de trabajo existentes y los flujos de trabajo en los que se crearon instancias desde la página Flujos de trabajo de Dataproc en la consola de Google Cloud.
Cómo agregar trabajos a una plantilla
Todos los trabajos se ejecutan simultáneamente, a menos que especifiques una o más dependencias de trabajo. Las dependencias de un trabajo se expresan como una lista de otros trabajos que se deben completar exitosamente antes de que pueda comenzar el trabajo final. Debes proporcionar una step-id
para cada trabajo. El ID debe ser único dentro del flujo de trabajo, pero no es necesario que lo sea globalmente.
Comando de gcloud
Usa el tipo de trabajos y las marcas heredadas de gcloud dataproc jobs submit para definir el trabajo que se agregará a la plantilla. De forma opcional, puedes usar la marca ‑‑start-after job-id of another workflow job
para que el trabajo comience después de que se completen uno o más trabajos en el flujo de trabajo.
Ejemplos:
Agrega el trabajo de Hadoop "foo" a la plantilla "my-workflow".
gcloud dataproc workflow-templates add-job hadoop \ --region=REGION \ --step-id=foo \ --workflow-template=my-workflow \ -- space separated job args
Agrega el trabajo "bar" a la plantilla "my-workflow", que se ejecutará después de que el trabajo de flujo de trabajo "foo" se haya completado correctamente.
gcloud dataproc workflow-templates add-job JOB_TYPE \ --region=REGION \ --step-id=bar \ --start-after=foo \ --workflow-template=my-workflow \ -- space separated job args
Agrega otro trabajo "baz" a la plantilla "my-workflow" para que se ejecute luego de que se completen correctamente los trabajos "foo" y "bar".
gcloud dataproc workflow-templates add-job JOB_TYPE \ --region=REGION \ --step-id=baz \ --start-after=foo,bar \ --workflow-template=my-workflow \ -- space separated job args
API de REST
Consulta WorkflowTemplate.OrderedJob. Este campo se proporciona como parte de una WorkflowTemplate completa, enviada con una solicitud workflowTemplates.create o workflowTemplates.update.
Console
Puedes ver las plantillas de flujo de trabajo existentes y los flujos de trabajo en los que se crearon instancias desde la página Flujos de trabajo de Dataproc en la consola de Google Cloud.
Cómo ejecutar un flujo de trabajo
La creación de una instancia de una plantilla de flujo de trabajo ejecuta el flujo de trabajo definido por la plantilla. Se admiten múltiples creaciones de instancias de una plantilla. Puedes ejecutar un flujo de trabajo varias veces.
Comando de gcloud
gcloud dataproc workflow-templates instantiate TEMPLATE_ID \ --region=REGION
El comando muestra un ID de operación, que puedes usar para realizar un seguimiento del estado del flujo de trabajo.
Ejemplo de comando y resultado:gcloud beta dataproc workflow-templates instantiate my-template-id \ --region=us-central1 ... WorkflowTemplate [my-template-id] RUNNING ... Created cluster: my-template-id-rg544az7mpbfa. Job ID teragen-rg544az7mpbfa RUNNING Job ID teragen-rg544az7mpbfa COMPLETED Job ID terasort-rg544az7mpbfa RUNNING Job ID terasort-rg544az7mpbfa COMPLETED Job ID teravalidate-rg544az7mpbfa RUNNING Job ID teravalidate-rg544az7mpbfa COMPLETED ... Deleted cluster: my-template-id-rg544az7mpbfa. WorkflowTemplate [my-template-id] DONE
API de REST
Consulta workflowTemplates.instantiate.Console
Puedes ver las plantillas de flujo de trabajo existentes y los flujos de trabajo en los que se crearon instancias desde la página Flujos de trabajo de Dataproc en la consola de Google Cloud.
Fallas de trabajo de flujo de trabajo
Una falla en cualquier trabajo en un flujo de trabajo causará que el flujo de trabajo tenga errores. Dataproc buscará mitigar el efecto de las fallas causando que todos los trabajos que se ejecutan simultáneamente fallen y evitando que se inicien los trabajos subsecuentes.
Cómo supervisar y hacer un lista de un flujo de trabajo
Comando de gcloud
Para supervisar un flujo de trabajo:
gcloud dataproc operations describe OPERATION_ID \ --region=REGION
Nota: El operation-id se muestra cuando creas una instancia en el flujo de trabajo con gcloud dataproc workflow-templates instantiate
(consulta Cómo ejecutar un flujo de trabajo).
Para hacer una lista del estado del flujo de trabajo:
gcloud dataproc operations list \ --region=REGION \ --filter="labels.goog-dataproc-operation-type=WORKFLOW AND status.state=RUNNING"
API de REST
Para supervisar un flujo de trabajo, usa la API operations.get de Dataproc.
Para hacer una lista de los flujos de trabajo activos, usa la API operations.list de Dataproc con un filtro de etiqueta.
Console
Puedes ver las plantillas de flujo de trabajo existentes y los flujos de trabajo en los que se crearon instancias desde la página Flujos de trabajo de Dataproc en la consola de Google Cloud.
Cómo finalizar un flujo de trabajo
Puedes finalizar un flujo de trabajo con Google Cloud CLI o con una llamada a la API de Dataproc.
Comando de gcloud
gcloud dataproc operations cancel OPERATION_ID \ --region=REGION
gcloud dataproc workflow-templates instantiate
(consulta Cómo ejecutar un flujo de trabajo).
API de REST
Consulta la API operations.cancel.
Console
Puedes ver las plantillas de flujo de trabajo existentes y los flujos de trabajo en los que se crearon instancias desde la página Flujos de trabajo de Dataproc en la consola de Google Cloud.
Cómo actualizar una plantilla de flujo de trabajo
Las actualizaciones no afectan los flujos de trabajo activos. La versión de la plantilla nueva solo se aplicará a los flujos de trabajo nuevos.
Comando de gcloud
Las plantillas de flujo de trabajo se pueden actualizar mediante el uso de comandos gcloud workflow-templates
nuevos que hacen referencia a un ID de plantilla de flujo de trabajo existente:
API de REST
Para hacer una actualización de una plantilla con las API de REST:
- Llama a workflowTemplates.get, que muestra la plantilla actual con el campo
version
completo con la versión del servidor actual. - Realiza actualizaciones en la plantilla recuperada
- Llama a workflowTemplates.update con la plantilla actualizada
Console
Puedes ver las plantillas de flujo de trabajo existentes y los flujos de trabajo en los que se crearon instancias desde la página Flujos de trabajo de Dataproc en la consola de Google Cloud.
Cómo borrar una plantilla de flujo de trabajo
Comando de gcloud
gcloud dataproc workflow-templates delete TEMPLATE_ID \ --region=REGION
Nota: El operation-id que se muestra cuando creas una instancia en el flujo de trabajo con gcloud dataproc workflow-templates instantiate
(consulta Cómo ejecutar un flujo de trabajo).
API de REST
Consulta workflowTemplates.delete.Console
Puedes ver las plantillas de flujo de trabajo existentes y los flujos de trabajo en los que se crearon instancias desde la página Flujos de trabajo de Dataproc en la consola de Google Cloud.