기본적으로 Dataproc 작업은 실패 시 자동으로 다시 시작되지 않습니다. 선택적 설정을 사용하면 실패 시 작업을 다시 시작하도록 설정할 수 있습니다. 작업을 다시 시작하도록 설정할 때 시간당 최대 재시도 횟수(최대값은 시간당 재시도 횟수 10회) 또는 최대 전체 재시도 횟수(최댓값은 재시도 횟수 총 240회)를 지정합니다.
작업을 다시 시작하면 메모리 부족 문제나 예상치 못한 Compute Engine 가상 머신 재부팅을 비롯한 일반적인 유형의 작업 실패 문제를 완화할 수 있습니다. 다시 시작 가능한 작업은 장기 실행 및 스트리밍 작업에 특히 유용합니다. 예를 들어 Dataproc 클러스터에서 실행 중인 Spark 스트리밍 작업을 다시 시작하여 스트리밍 작업이 복원되도록 할 수 있습니다.
다시 시작 가능한 작업의 시맨틱스
작업의 성공 또는 실패를 보고할 때는 다음과 같은 시맨틱스가 적용됩니다.
- 드라이버가
0
코드로 종료되면 작업이 성공으로 보고됩니다. - 다음에 해당하는 경우 작업이 실패로 보고됩니다.
- 드라이버가 10분 내에 4회 이상 0 이외의 코드로 종료됩니다.
- 드라이버가 0 이외의 코드로 종료되고
max_failures_per_hour
또는max_failures_total
설정을 초과했습니다.
- 드라이버가 0 이외의 코드로 종료되고 스래싱 상태가 아니며
max_failures_per_hour
및max_failures_total
설정 내에 있으면 작업이 다시 시작됩니다.
작업 설계 고려사항
- 다시 시작을 원활하게 처리하도록 작업을 설계합니다. 예를 들어 작업이 디렉터리에 기록되는 경우 작업이 다시 시작될 때 디렉터리가 존재할 가능성이 있습니다.
- Apache Spark 스트리밍 작업은 실패 후 체크포인트에서 다시 시작할 수 있지만 YARN 상태는 보고하지 않습니다.
다시 시작 가능한 작업 만들기 및 사용
gcloud CLI 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회). 현재 Google Cloud 콘솔에서는 최대 재시작 총 설정을 사용할 수 없습니다.