Dataflow Runner V2 사용

Dataflow를 사용하여 파이프라인을 실행하면 Dataflow 실행기가 파이프라인 코드 및 종속 항목을 Cloud Storage 버킷에 업로드하고 Dataflow 작업을 만듭니다. 이 Dataflow 작업은 Google Cloud의 관리형 리소스에서 파이프라인을 실행합니다.

  • Apache Beam Java SDK 버전 2.54.0 이상을 사용하는 일괄 파이프라인의 경우 Runner v2가 기본적으로 사용 설정됩니다.
  • Apache Beam Java SDK를 사용하는 파이프라인의 경우 다국어 파이프라인을 실행하거나 커스텀 컨테이너를 사용하거나 Spanner 또는 Bigtable 변경 내역 파이프라인을 사용할 때 Runner v2가 필요합니다. 다른 경우에는 기본 실행기를 사용합니다.
  • Apache Beam Python SDK 버전 2.21.0 이상을 사용하는 파이프라인의 경우 기본적으로 Runner v2가 사용 설정됩니다. Apache Beam Python SDK 버전 2.45.0 이상을 사용하는 파이프라인의 경우 Dataflow Runner v2가 사용할 수 있는 유일한 Dataflow Runner입니다.
  • Go용 Apache Beam SDK에서는 Dataflow Runner v2가 사용할 수 있는 유일한 Dataflow Runner입니다.

Runner v2는 일부 파이프라인에 도움이 되는 서비스 기반 아키텍처를 사용합니다.

제한 및 제약사항

Dataflow Runner v2의 요구사항은 다음과 같습니다.

  • Dataflow Runner v2는 Dataflow 위치에 나열된 리전에서만 사용할 수 있습니다.
  • Dataflow Runner v2에는 스트리밍 작업의 경우 Streaming Engine이 필요하며 일괄 작업의 경우 Dataflow Shuffle이 필요합니다.
  • Dataflow Runner v2에는 스트리밍 작업에 Streaming Engine이 필요하므로 Dataflow Runner v2가 필요한 모든 Apache Beam 변환에도 스트리밍 작업에 Streaming Engine을 사용해야 합니다. 예를 들어 Python용 Apache Beam SDK의 Pub/Sub 라이트 I/O 커넥터는 Dataflow Runner v2가 필요한 교차 언어 변환입니다. 이 변환을 사용하는 작업 또는 템플릿에 대해 스트리밍 엔진을 사용 중지하려고 시도하면 작업이 실패합니다.
  • Apache Beam Java SDK를 사용하는 스트리밍 파이프라인의 경우 MapStateSetState 클래스가 지원되지 않습니다.
  • Apache Beam Java SDK를 사용하는 일괄 및 스트리밍 파이프라인의 경우 OrderedListStateAfterSynchronizedProcessingTime 클래스가 지원되지 않습니다.

Dataflow Runner v2 사용 설정

Dataflow Runner v2를 사용 설정하려면 Apache Beam SDK에 대한 구성 안내를 따르세요.

Java

Dataflow Runner v2에는 Apache Beam Java SDK 버전 2.30.0 이상이 필요하며 버전 2.44.0 이상이 권장됩니다.

Apache Beam Java SDK 버전 2.54.0 이상을 사용하는 일괄 파이프라인의 경우 Runner v2가 기본적으로 사용 설정됩니다.

Runner v2를 사용 설정하려면 --experiments=use_runner_v2 플래그를 사용하여 작업을 실행합니다.

Runner v2를 사용 중지하려면 --experiments=disable_runner_v2 플래그를 사용합니다.

Python

Apache Beam Python SDK 버전 2.21.0 이상을 사용하는 파이프라인의 경우 기본적으로 Runner v2가 사용 설정됩니다.

Dataflow Runner v2는 Apache Beam Python SDK 버전 2.20.0 이하에서 지원되지 않습니다.

일부 경우에는 파이프라인이 지원되는 SDK 버전에서 실행되더라도 Runner v2가 파이프라인에 사용되지 않을 수 있습니다. 이러한 경우 Runner v2로 작업을 실행하려면 --experiments=use_runner_v2 플래그를 사용합니다.

Runner v2를 중지하고 작업을 auto_runner_v2 실험으로 식별하면 --experiments=disable_runner_v2 플래그를 사용합니다. Apache Beam Python SDK 버전 2.45.0 이상에서는 Runner V2를 중지할 수 없습니다.

Go

Dataflow Runner v2는 Go용 Apache Beam SDK에 사용할 수 있는 유일한 Dataflow Runner입니다. Runner v2는 기본적으로 사용 설정됩니다.

작업 모니터링

모니터링 인터페이스를 사용하여 메모리 사용률, CPU 사용률 등과 같은 Dataflow 작업 측정항목을 확인합니다.

작업자 VM 로그는 로그 탐색기Dataflow 모니터링 인터페이스를 통해 제공됩니다. 작업자 VM 로그에는 실행기 하네스 프로세스의 로그 및 SDK 프로세스의 로그가 포함됩니다. VM 로그를 사용하여 작업 문제를 해결할 수 있습니다.

Runner v2 문제 해결

Dataflow Runner v2를 사용하여 작업 문제를 해결하려면 표준 파이프라인 문제 해결 단계를 따릅니다. 다음 목록은 Dataflow Runner v2가 작동하는 방법에 대한 추가 정보를 제공합니다.

  • Dataflow Runner v2 작업은 작업자 VM에서 두 가지 유형의 프로세스(SDK 프로세스 및 실행기 하네스 프로세스)를 실행합니다. 파이프라인 및 VM 유형에 따라 하나 이상의 SDK 프로세스가 존재할 수 있지만 VM당 실행기 하네스 프로세스는 하나만 있습니다.
  • SDK 프로세스가 사용자 코드 및 기타 언어별 함수를 실행합니다. 실행기 하네스 프로세스는 다른 모든 것을 관리합니다.
  • 실행기 하네스 프로세스는 Dataflow에서 작업을 요청하기 전에 모든 SDK 프로세스가 연결되기를 기다립니다.
  • SDK 프로세스 시작 중에 작업자 VM이 종속 항목을 다운로드하고 설치하면 작업이 지연될 수 있습니다. 라이브러리를 시작하거나 설치할 때와 같이 SDK 프로세스 중에 문제가 발생하면 작업자가 해당 상태를 비정상으로 보고합니다. 시작 시간이 증가하면 프로젝트에서 Cloud Build API를 사용 설정하고 다음 매개변수를 사용하여 파이프라인을 제출합니다.--prebuild_sdk_container_engine=cloud_build
  • Dataflow Runner v2는 체크포인트를 사용하므로 각 작업자는 추가 처리를 위해 변경사항을 보내기 전에 변경사항을 버퍼링하는 동안 최대 5초 동안 기다릴 수 있습니다. 따라서 약 6초의 지연 시간이 예상됩니다.
  • 사용자 코드의 문제를 진단하려면 SDK 프로세스에서 작업자 로그를 검사합니다. 실행기 하네스 로그에서 오류를 발견하면 지원팀에 문의하여 버그를 신고하세요.
  • Dataflow 다국어 파이프라인과 관련된 일반적인 오류를 디버깅하려면 다국어 파이프라인 팁 가이드를 참조하세요.