워크플로 사용

다음과 같이 워크플로를 설정하고 실행할 수 있습니다.

  1. 워크플로 템플릿 만들기
  2. 관리되는(임시) 클러스터 구성 또는 기존 클러스터 선택
  3. 작업 추가
  4. 템플릿을 인스턴스화하여 워크플로 실행

템플릿 만들기

gcloud 명령어

다음 command를 실행하여 Dataproc 워크플로 템플릿 리소스를 만듭니다.

gcloud dataproc workflow-templates create TEMPLATE_ID \
    --region=REGION

참고:

  • REGION: 템플릿을 실행할 리전을 지정합니다.
  • TEMPLATE_ID: 'workflow-template-1'과 같은 템플릿 ID를 제공합니다.
  • CMEK 암호화 --kms-key 플래그를 추가하여 워크플로 템플릿 작업 인수에 CMEK 암호화를 사용할 수 있습니다.

REST API

workflowTemplates.create 요청의 일부로 WorkflowTemplate을 제출합니다. WorkflowTemplate.EncryptionConfig.kmsKey 필드를 추가하여 워크플로 템플릿 작업 인수에 CMEK 암호화를 사용할 수 있습니다. kmsKey

콘솔

Google Cloud 콘솔의 Dataproc 워크플로 페이지에서 기존 워크플로 템플릿과 인스턴스화된 워크플로를 볼 수 있습니다.

클러스터 구성 또는 선택

Dataproc은 워크플로 또는 기존 클러스터의 새 '관리형' 클러스터를 만들고 사용할 수 있습니다.

  • 기존 클러스터: 워크플로의 기존 클러스터를 선택하려면 워크플로에 클러스터 선택기 사용을 참조하세요.

  • 관리되는 클러스터: 워크플로의 관리되는 클러스터를 구성해야 합니다. Dataproc는 이 새 클러스터를 만들어 워크플로 작업을 실행한 다음 워크플로가 완료되면 클러스터를 삭제합니다.
    gcloud 명령줄 도구 또는 Dataproc API를 사용하여 워크플로의 관리형 클러스터를 구성할 수 있습니다.

    gcloud 명령어

    gcloud dataproc cluster create에서 상속된 플래그를 사용하여 작업자 수, 마스터 및 작업자 머신 유형과 같은 관리 클러스터를 구성합니다. Dataproc은 클러스터 이름에 서픽스를 추가하여 고유성을 보장합니다.

    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
    

    REST API

    WorkflowTemplatePlacement.ManagedCluster를 참조하세요. 이 필드는 workflowTemplates.create 또는 workflowTemplates.update 요청으로 제출된 완료된 WorkflowTemplate의 일부로 제공됩니다.

    콘솔

    Google Cloud 콘솔의 Dataproc 워크플로 페이지에서 기존 워크플로 템플릿과 인스턴스화된 워크플로를 볼 수 있습니다.

템플릿에 작업 추가

하나 이상의 작업 종속 항목을 지정하지 않으면 모든 작업이 동시에 실행됩니다. 작업의 종속 항목은 최종 작업이 시작되기 전에 성공적으로 완료되어야 하는 다른 작업의 목록으로 표현됩니다. 각 작업에 step-id를 제공해야 합니다. ID는 워크플로 내에서 고유해야 하지만 전체적으로 고유할 필요는 없습니다.

gcloud 명령어

gcloud dataproc jobs submit에서 상속된 작업 유형과 플래그를 사용하여 템플릿에 추가할 작업을 정의합니다. 워크플로에서 하나 이상의 다른 작업이 완료된 후에 작업이 시작되도록 하려는 경우 선택적으로 ‑‑start-after job-id of another workflow job 플래그를 사용할 수 있습니다.

예:

'my-workflow' 템플릿에 Hadoop 작업 'foo'를 추가합니다.

gcloud dataproc workflow-templates add-job hadoop \
    --region=region \
    --step-id=foo \
    --workflow-template=my-workflow \
    -- space separated job args

워크플로 작업 'foo'가 완료된 후 실행되는 'my-workflow' 템플릿에 작업 'bar'를 추가합니다.

gcloud dataproc workflow-templates add-job job-type \
    --region=region \
    --step-id=bar \
    --start-after=foo \
    --workflow-template=my-workflow \
    -- space separated job args

'foo' 작업과 'bar' 작업이 모두 완료된 후 실행되는 'my-workflow' 템플릿에 다른 작업 'baz'를 추가합니다.

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

REST API

WorkflowTemplate.OrderedJob을 참조하세요. 이 필드는 workflowTemplates.create 또는 workflowTemplates.update 요청으로 제출된 완료된 WorkflowTemplate의 일부로 제공됩니다.

콘솔

Google Cloud 콘솔의 Dataproc 워크플로 페이지에서 기존 워크플로 템플릿과 인스턴스화된 워크플로를 볼 수 있습니다.

워크플로 실행

워크플로 템플릿의 인스턴스화는 템플릿 기반으로 정의된 워크플로를 실행합니다. 템플릿의 다중 인스턴스화가 지원되므로 워크플로를 여러 번 실행할 수 있습니다.

gcloud 명령어

gcloud dataproc workflow-templates instantiate template-id \
    --region=region

이 명령어는 워크플로 상태를 추적하는 데 사용할 수 있는 작업 ID를 반환합니다.

명령어 및 출력 예시:
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

REST API

workflowTemplates.instantiate를 참조하세요.

콘솔

Google Cloud 콘솔의 Dataproc 워크플로 페이지에서 기존 워크플로 템플릿과 인스턴스화된 워크플로를 볼 수 있습니다.

워크플로 작업 오류

워크플로의 작업에서 오류가 발생하면 워크플로에 오류가 발생합니다. Dataproc은 동시에 실행되는 모든 작업이 실패하도록 만들어 후속 작업이 시작되지 못하게 하여 오류가 미치는 영향을 완화합니다.

워크플로 모니터링 및 나열

gcloud 명령어

워크플로를 모니터링하려면 다음을 실행하세요.

gcloud dataproc operations describe operation-id \
    --region=region

참고: gcloud dataproc workflow-templates instantiate로 워크플로를 인스턴스화할 때 operation-id가 반환됩니다(워크플로 실행 참조).

워크플로 상태를 나열하려면 다음을 실행하세요.

gcloud dataproc operations list \
    --region=region \
    --filter="labels.goog-dataproc-operation-type=WORKFLOW AND status.state=RUNNING"

REST API

워크플로를 모니터링하려면 Dataproc operations.get API를 사용합니다.

실행 중인 워크플로를 나열하려면 라벨 필터와 함께 Dataproc operations.list API를 사용합니다.

콘솔

Google Cloud 콘솔의 Dataproc 워크플로 페이지에서 기존 워크플로 템플릿과 인스턴스화된 워크플로를 볼 수 있습니다.

워크플로 종료

Google Cloud CLI를 사용하거나 Dataproc API를 호출하여 워크플로를 종료할 수 있습니다.

gcloud 명령어

gcloud dataproc operations cancel operation-id \
    --region=region
참고: gcloud dataproc workflow-templates instantiate로 워크플로를 인스턴스화할 때 operation-id가 반환됩니다(워크플로 실행 참조).

REST API

operations.cancel API를 참조하세요.

콘솔

Google Cloud 콘솔의 Dataproc 워크플로 페이지에서 기존 워크플로 템플릿과 인스턴스화된 워크플로를 볼 수 있습니다.

워크플로 템플릿 업데이트

업데이트는 실행 중인 워크플로에 영향을 미치지 않습니다. 새 템플릿 버전은 새 워크플로에만 적용됩니다.

gcloud 명령어

워크플로 템플릿은 기존 워크플로 템플릿 ID를 참조하는 새로운 gcloud workflow-templates 명령어를 실행하는 방식으로 업데이트할 수 있습니다.

기존 워크플로 템플릿을 대상으로 합니다.

REST API

REST API로 템플릿을 업데이트하는 방법은 다음과 같습니다.

  1. version 필드에 현재 서버 버전이 입력된 현재 템플릿을 반환하는 workflowTemplates.get을 호출합니다.
  2. 가져온 템플릿을 업데이트합니다.
  3. 업데이트된 템플릿을 workflowTemplates.update를 호출합니다.

콘솔

Google Cloud 콘솔의 Dataproc 워크플로 페이지에서 기존 워크플로 템플릿과 인스턴스화된 워크플로를 볼 수 있습니다.

워크플로 템플릿 삭제

gcloud 명령어

gcloud dataproc workflow-templates delete template-id \
    --region=region

참고: gcloud dataproc workflow-templates instantiate로 워크플로를 인스턴스화할 때 operation-id가 반환됩니다(워크플로 실행 참조).

REST API

workflowTemplates.delete을 참조하세요.

콘솔

Google Cloud 콘솔의 Dataproc 워크플로 페이지에서 기존 워크플로 템플릿과 인스턴스화된 워크플로를 볼 수 있습니다.