Trabajos reiniciables

De manera predeterminada, los trabajos de Cloud Dataproc no se reiniciarán automáticamente en caso de falla. Mediante el uso de una configuración opcional, puedes establecer que los trabajos se reinicien en caso de falla. Cuando configuras un trabajo para que se reinicie, especificas el número máximo de reintentos por hora (el límite superior es 10 reintentos por hora).

El reinicio de los trabajos mitiga los tipos comunes de falla de trabajo, incluidos los problemas de memoria insuficiente y los reinicios inesperados de la máquina virtual de Google Compute Engine. Los trabajos reiniciables son especialmente útiles para trabajos de transmisión y de larga duración. Por ejemplo, puedes reiniciar los trabajos de transmisión de Spark activos en los clústeres de Google Cloud Dataproc para garantizar que los trabajos de transmisión sean resistentes. Los trabajos reiniciables se pueden crear a través de la herramienta de línea de comandos de gcloud del SDK de Google Cloud o la API de REST de Cloud Dataproc.

Semántica de los trabajos reiniciables

Se puede marcar cualquier tipo de trabajo de Cloud Dataproc como reiniciable. Esto se aplica a trabajos enviados a través de Google Cloud Platform Console, la herramienta de línea de comandos de gcloud del SDK de Google Cloud o la API de REST de Cloud Dataproc.

La siguiente semántica se aplica al informe de la falla o el éxito de los trabajos:

  • Un trabajo se informa como exitoso si el controlador finaliza con el código 0.
  • Un trabajo se informa con errores si:
    • El controlador finaliza con un código distinto de cero más de 4 veces en 10 minutos.
    • El controlador finaliza con un código distinto de cero y se excedió de la configuración max_failures_per_hour.
  • Se reiniciará un trabajo si el controlador se cierra con un código distinto de cero, no está agotado y está dentro de la configuración max_failures_per_hour.

Limitaciones conocidas

Las siguientes limitaciones se aplican a los trabajos reiniciables en Cloud Dataproc.

  • Debes diseñar tus trabajos para controlar fácilmente el reinicio. Por ejemplo, si tu trabajo se escribe en un directorio, el trabajo deberá tener en cuenta el hecho de que el directorio ya puede existir cuando se reinicia el trabajo.
  • Los trabajos de transmisión de Apache Spark que pasan el punto de control se pueden reiniciar luego de la falla, pero estos trabajos no informarán un estado Yarn.

Cómo crear y usar trabajos reiniciables

gcloud

Puedes especificar el número máximo de veces que se reinicia un trabajo por hora cuando envías el trabajo con la herramienta de línea de comandos de gcloud (el valor máximo es 10 reintentos por hora).

gcloud dataproc jobs submit <job type> args --max-failures-per-hour number

API de REST

Puedes configurar trabajos para que se reinicien a través de la API de REST de Cloud Dataproc. Usa la API jobs.submit para configurar el número de veces que se puede reiniciar un trabajo en caso de falla. Puedes configurar el número máximo de fallas para un trabajo si especificas un objeto JobScheduling y configuras el campo max_failures_per_hour (el valor máximo es 10 reintentos por hora).

Ejemplo

POST /v1/projects/project-id/regions/global/jobs:submit/
{
"projectId": "project-id",
"job": {
"placement": {
  "clusterName": "example-cluster"
},
"reference": {
  "jobId": "cea7ae0b...."
},
"sparkJob": {
  "args": [
    "1000"
  ],
  "mainClass": "org.apache.spark.examples.SparkPi",
  "jarFileUris": [
    "file:///usr/lib/spark/examples/jars/spark-examples.jar"
  ]
},
"scheduling": {
  "maxFailuresPerHour": 5
}
}
}

Console

Puedes enviar trabajos reiniciables si especificas los reinicios máximos por hora en la página Submit a job (Envía un trabajo) de Cloud Dataproc (el valor máximo es 10 veces por hora).
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud Dataproc
Si necesitas ayuda, visita nuestra página de asistencia.