이 페이지에서는 Dataproc 작업의 제출, 실행, 완료와 관련된 단계의 순서에 대해 설명합니다. 또한 작업 제한 및 디버깅에 대해서도 다룹니다.
Dataproc 작업 흐름
- 사용자가 작업을 Dataproc에 제출합니다.
- JobStatus.State가
PENDING
으로 표시됩니다.
- JobStatus.State가
- 작업이
dataproc
에이전트에 의해 획득될 때까지 기다립니다.- 작업이 획득되면 JobStatus.State가
RUNNING
로 표시됩니다. - 에이전트 오류, Compute Engine 네트워크 오류나 다른 원인으로 인해 작업이 획득되지 않으면 작업이
ERROR
로 표시됩니다.
- 작업이 획득되면 JobStatus.State가
- 작업을 에이전트가 획득했으면 에이전트는 Dataproc 클러스터의 마스터 노드에 드라이버를 시작하는 데 이용 가능한 리소스가 충분한지 확인합니다.
- 충분한 리소스를 이용할 수 없는 경우 작업이 지연됩니다(제한됨).
JobStatus.Substate는 작업을
QUEUED
로 표시하고 Job.JobStatus.details는 지연 원인에 대한 정보를 제공합니다.
- 충분한 리소스를 이용할 수 없는 경우 작업이 지연됩니다(제한됨).
JobStatus.Substate는 작업을
- 이용할 수 있는 리소스가 충분하면
dataproc
에이전트가 작업 드라이버 프로세스를 시작합니다.- 이 단계에서는 일반적으로 하나 이상의 애플리케이션이 Apache Hadoop YARN에서 실행됩니다. 그러나 드라이버가 Cloud Storage 디렉토리 스캔 또는 다른 시작 작업 태스크 수행을 완료한 후에 Yarn 애플리케이션이 시작됩니다.
dataproc
에이전트는 작업 진행상황, 클러스터 측정항목, 작업과 관련된 Yarn 애플리케이션에 관한 업데이트를 주기적으로 Dataproc에 보냅니다(작업 모니터링 및 디버깅 참조).- Yarn 애플리케이션이 완료됩니다.
- 드라이버가 수집 구체화 같은 작업 완료 태스크를 수행하는 동안 작업은 계속
RUNNING
으로 보고됩니다. - 기본 스레드에서 처리되지 않거나 포착되지 않은 오류는 드라이버를 좀비 상태(오류 원인에 대한 정보 없이
RUNNING
으로 표시됨)로 남겨둘 수 있습니다.
- 드라이버가 수집 구체화 같은 작업 완료 태스크를 수행하는 동안 작업은 계속
- 드라이버가 종료됩니다.
dataproc
에이전트가 Dataproc에 완료를 보고합니다.- Dataproc은 작업을
DONE
으로 보고합니다.
- Dataproc은 작업을
작업 모니터링 및 디버깅
gcloud
명령줄 도구, Dataproc REST API, Google Cloud Console을 사용하여 Dataproc 작업을 분석하고 디버깅합니다.
gcloud 명령
실행 중인 작업의 상태를 검토하려면 다음 명령을 사용하세요.
gcloud dataproc jobs describe job-id \ --region=region
작업 드라이버 출력을 보려면 작업 드라이버 출력 액세스를 참조하세요.
REST API
jobs.get을 호출하여 작업의 JobStatus.State, JobStatus.Substate, JobStatus.details, YarnApplication 필드를 검토합니다.
콘솔
작업 드라이버 출력을 보려면 작업 드라이버 출력 액세스를 참조하세요.
Logging에서 dataproc 에이전트 로그를 보려면 로그 뷰어 클러스터 선택기에서 Dataproc 클러스터→클러스터 이름→클러스터 UUID를 선택합니다.

그런 다음 로그 선택기를 사용하여 google.dataproc.agent
로그를 선택합니다.

Logging에서 작업 로그 보기
작업이 실패하면 Logging에서 작업 로그에 액세스할 수 있습니다.
작업을 제출한 사람 확인
작업 세부정보를 조회하면 submittedBy
필드에 해당 작업을 제출한 사람이 표시됩니다. 예를 들어 이 작업 출력에는 예시 작업을 클러스터에 제출한 user@domain
가 표시됩니다.
... placement: clusterName: cluster-name clusterUuid: cluster-uuid reference: jobId: job-uuid projectId: project status: state: DONE stateStartTime: '2018-11-01T00:53:37.599Z' statusHistory: - state: PENDING stateStartTime: '2018-11-01T00:33:41.387Z' - state: SETUP_DONE stateStartTime: '2018-11-01T00:33:41.765Z' - details: Agent reported job success state: RUNNING stateStartTime: '2018-11-01T00:33:42.146Z' submittedBy: user@domain