다시 시작 가능한 작업

기본적으로 Dataproc 작업은 실패 시 자동으로 다시 시작되지 않습니다. 선택적 설정을 사용하면 실패 시 작업을 다시 시작하도록 설정할 수 있습니다. 작업을 다시 시작하도록 설정할 때 시간당 최대 재시도 횟수(최대값은 시간당 재시도 횟수 10회) 또는 최대 전체 재시도 횟수(최댓값은 재시도 횟수 총 240회)를 지정합니다.

작업을 다시 시작하면 메모리 부족 문제나 예상치 못한 Compute Engine 가상 머신 재부팅을 비롯한 일반적인 유형의 작업 실패 문제를 완화할 수 있습니다. 다시 시작 가능한 작업은 장기 실행 및 스트리밍 작업에 특히 유용합니다. 예를 들어 Dataproc 클러스터에서 실행 중인 Spark 스트리밍 작업을 다시 시작하여 스트리밍 작업이 복원되도록 할 수 있습니다.

다시 시작 가능한 작업의 시맨틱스

작업의 성공 또는 실패를 보고할 때는 다음과 같은 시맨틱스가 적용됩니다.

  • 드라이버가 0 코드로 종료되면 작업이 성공으로 보고됩니다.
  • 다음에 해당하는 경우 작업이 실패로 보고됩니다.
    • 드라이버가 10분 내에 4회 이상 0 이외의 코드로 종료됩니다.
    • 드라이버가 0 이외의 코드로 종료되고 max_failures_per_hour 또는 max_failures_total 설정을 초과했습니다.
  • 드라이버가 0 이외의 코드로 종료되고 스래싱 상태가 아니며 max_failures_per_hourmax_failures_total 설정 내에 있으면 작업이 다시 시작됩니다.

작업 설계 고려사항

  • 다시 시작을 원활하게 처리하도록 작업을 설계합니다. 예를 들어 작업이 디렉터리에 기록되는 경우 작업이 다시 시작될 때 디렉터리가 존재할 가능성이 있습니다.
  • Apache Spark 스트리밍 작업은 실패 후 체크포인트에서 다시 시작할 수 있지만 YARN 상태는 보고하지 않습니다.

다시 시작 가능한 작업 만들기 및 사용

Cloud SDK gcloud 명령줄 도구, Dataproc REST API 또는 Google Cloud Console을 통해 작업을 제출할 때 시간당 작업을 다시 시작할 수 있는 최대 횟수와 최대 총 재시도 횟수를 지정할 수 있습니다.

예: 작업이 최대 10번까지 재시도되지만 한 시간에 최대 5회 이하까지만 허용하려면 max-failures-total을 10으로, max-failures-per-hour를 5로 설정합니다.

gcloud

시간당 작업을 다시 시작할 수 있는 최대 횟수 (시간당 최대 재시도 횟수는 10회) 및/또는 최대 총 재시도 횟수 (최대 총 재시도 횟수는 240회)를 --max-failures-per-hour--max-failures-total 플래그를 사용하여 각각 지정합니다.

gcloud dataproc jobs submit job type \
    --region=region \
    --max-failures-per-hour=number \
    --max-failures-total=number \
    ... other args

REST API

시간당 최대 작업 재시도 횟수(시간당 최대 재시도 횟수는 10회) 및/또는 최대 재시도 횟수 (최대 총 재시도 횟수는 240회)를 Job.JobSchedulingmaxFailuresPerHour 및/또는 maxFailuresTotal 필드를 사용하여 각각 지정합니다.

예시

POST /v1/projects/project-id/regions/us-central1/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
  "maxFailuresTotal": 10
}
}
}

콘솔

Dataproc 작업 제출 페이지에서 시간당 최대 재시작 횟수를 지정하여 다시 시작 가능한 작업을 제출할 수 있습니다(시간당 최대 재시작 횟수는 10회). 현재 Cloud Console에서는 최대 재시작 총 설정을 사용할 수 없습니다.