Dataproc Serverless 워크로드 모니터링 및 문제 해결

다음 섹션에서 설명하는 정보와 도구를 사용하여 Spark를 위한 Dataproc Serverless 일괄 워크로드를 모니터링하고 문제를 해결할 수 있습니다.

영구 기록 서버

Spark를 위한 Dataproc Serverless는 워크로드를 실행하는 데 필요한 컴퓨팅 리소스를 만들고 해당 리소스에서 워크로드를 실행한 후 워크로드가 완료되면 리소스를 삭제합니다. 워크로드가 완료된 후에 워크로드 측정항목 및 이벤트가 지속되지 않습니다. 하지만 영구 기록 서버(PHS)를 사용하여 Cloud Storage의 워크로드 애플리케이션 기록(이벤트 로그)을 보관할 수 있습니다.

일괄 워크로드에 PHS를 사용하려면 다음을 수행합니다.

  1. Dataproc 영구 기록 서버(PHS)를 만듭니다.

  2. 워크로드를 제출할 때 PHS를 지정합니다.

  3. 구성요소 게이트웨이를 사용해서 PHS에 연결하여 애플리케이션 세부정보, 스케줄러 단계, 태스크 수준 세부정보, 환경 및 실행자 정보를 확인합니다.

Spark를 위한 Dataproc Serverless 로그

Logging은 Spark를 위한 Dataproc Serverless에서 기본적으로 사용 설정되며 워크로드 로그는 워크로드가 완료된 후에도 유지됩니다. Spark를 위한 Dataproc Serverless는 Cloud Logging에서 워크로드 로그를 수집합니다. 로그 탐색기의 Cloud Dataproc Batch 리소스에서 워크로드 spark, agent, output, container 로그에 액세스할 수 있습니다.

Spark를 위한 Dataproc Serverless 일괄 예시:

측정항목 탐색기의 일괄 선택 예시

자세한 내용은 Dataproc 로그를 참조하세요.

워크로드 측정항목

기본적으로 Spark를 위한 Dataproc Serverless는 Spark 측정항목 수집 속성을 사용하여 하나 이상의 Spark 측정항목 수집을 사용 중지하거나 재정의하지 않는 한 사용 가능한 Spark 측정항목의 수집을 사용 설정합니다.

측정항목 탐색기 또는 Google Cloud 콘솔의 일괄 세부정보 페이지에서 워크로드 측정항목을 볼 수 있습니다.

일괄 측정항목

Dataproc batch 리소스 측정항목은 일괄 실행자 수와 같은 일괄 리소스에 대한 통계를 제공합니다. 일괄 측정항목에는 dataproc.googleapis.com/batch 프리픽스가 추가됩니다.

측정항목 탐색기의 일괄 측정항목 예시

Spark 측정항목

사용 가능한 Spark 측정항목에는 Spark 드라이버 및 실행자 측정항목, 시스템 측정항목이 포함됩니다. 사용 가능한 Spark 측정항목에는 custom.googleapis.com/ 프리픽스가 추가됩니다.

측정항목 탐색기의 Spark 측정항목 예시

측정항목 알림 설정

Dataproc 측정항목 알림을 만들어 워크로드 문제에 대한 알림을 받을 수 있습니다.

차트 만들기

Google Cloud 콘솔에서 측정항목 탐색기를 사용하여 워크로드 측정항목을 시각화하는 차트를 만들 수 있습니다. 예를 들어 disk:bytes_used를 표시하는 차트를 만들고 batch_id로 필터링할 수 있습니다.

Cloud Monitoring

Monitoring은 워크로드 메타데이터와 측정항목을 사용하여 Spark를 위한 Dataproc Serverless 워크로드의 상태와 성능에 대한 통계를 제공합니다. 워크로드 측정항목에는 Spark 측정항목, 일괄 측정항목, 작업 측정항목이 포함됩니다.

Google Cloud 콘솔에서 Cloud Monitoring을 사용하여 측정항목을 탐색하고, 차트를 추가하고, 대시보드를 만들고, 알림을 만들 수 있습니다.

대시보드 만들기

여러 프로젝트 및 다양한 Google Cloud 제품의 측정항목을 사용하여 워크로드를 모니터링하는 대시보드를 만들 수 있습니다. 자세한 내용은 커스텀 대시보드 만들기 및 관리를 참조하세요.

고급 문제 해결(미리보기)

이 섹션에서는 Dataproc Serverless에 대한 Gemini 지원 문제 해결을 포함하여 Google Cloud 콘솔에서 사용할 수 있는 고급 문제 해결 미리보기 기능을 다룹니다. 이는 BigQuery 내 Gemini의 일부 서비스입니다.

미리보기 기능 액세스

고급 문제 해결 기능의 미리보기 출시를 신청하려면 BigQuery의 Gemini 미리보기 양식을 작성하여 제출합니다. 양식이 승인되면 양식에 나열된 프로젝트에서 미리보기 기능에 액세스할 수 있습니다.

미리보기 가격 책정

미리보기에 참여하는 데는 추가 비용이 들지 않습니다. 다음 미리보기 기능이 정식 버전(GA)으로 출시되면 요금이 청구됩니다.

GA 청구 사전 알림은 미리보기 가입 양식에 제공한 이메일 주소로 전송됩니다.

기능 요구사항

  • 신청: 기능을 신청해야 합니다.

  • 권한: dataproc.batches.analyze 권한이 있어야 합니다.

    gcloud iam roles update CUSTOM_ROLE_ID --project=PROJECT_ID \
    --add-permissions="dataproc.batches.analyze"
    
  • Dataproc Serverless에 대한 Gemini 지원 문제 해결 사용 설정: Google Cloud 콘솔, gcloud CLI 또는 Dataproc API를 사용하여 반복되는 각 Spark 일괄 워크로드를 제출할 때 Dataproc Serverless에 대한 Gemini 지원 문제 해결을 사용 설정합니다. 이 기능을 반복 일괄 워크로드에서 사용 설정하면 Dataproc은 30일 동안 워크로드 로그의 사본을 저장하고 저장된 로그 데이터를 사용하여 워크로드에 대한 Gemini 지원 문제 해결을 제공합니다. Spark 워크로드 로그 콘텐츠에 대한 자세한 내용은 Spark 로그를 위한 Dataproc Serverless를 참조하세요.

콘솔

다음 단계를 수행하여 반복되는 각 Spark 일괄 워크로드에서 Gemini 지원 문제 해결을 사용 설정합니다.

  1. Google Cloud 콘솔에서 Dataproc Batches 페이지로 이동합니다.

    Dataproc Batches로 이동

  2. 일괄 워크로드를 만들려면 만들기를 클릭합니다.

  3. 컨테이너 섹션에서 배치를 일련의 반복되는 워크로드 중 하나로 식별하는 동질 집단 이름을 입력합니다. Gemini 지원 분석은 이 동질 집단 이름으로 제출된 두 번째 및 후속 워크로드에 적용됩니다. 예를 들어 일일 TPC-H 쿼리를 실행하는 예약된 워크로드의 동질 집단 이름으로 TPCH-Query1을 지정합니다.

  4. 필요에 따라 배치 만들기 페이지의 다른 섹션을 작성한 후 제출을 클릭합니다. 자세한 내용은 일괄 워크로드 제출을 참조하세요.

gcloud

터미널 창 또는 Cloud Shell에서 다음 gcloud CLI gcloud dataproc batches submit 명령어를 로컬로 실행하여 반복되는 각 Spark 일괄 워크로드에 Gemini 지원 문제 해결을 사용 설정합니다.

gcloud dataproc batches submit COMMAND \
    --region=REGION \
    --cohort=COHORT \
    other arguments ...

다음을 바꿉니다.

  • COMMAND: Spark 워크로드 유형(예: Spark, PySpark, Spark-Sql 또는 Spark-R).
  • REGION: 워크로드가 실행되는 리전.
  • COHORT: 배치를 일련의 반복되는 워크로드 중 하나로 식별하는 동질 집단 이름. Gemini 지원 분석은 이 동질 집단 이름으로 제출된 두 번째 및 후속 워크로드에 적용됩니다. 예를 들어 일일 TPC-H 쿼리를 실행하는 예약된 워크로드의 동질 집단 이름으로 TPCH Query 1을 지정합니다.

API

batches.create 요청에 RuntimeConfig.cohort 이름을 포함하여 반복되는 각 Spark 일괄 워크로드에서 Gemini 지원 문제 해결을 사용 설정합니다. Gemini 지원 분석은 이 동질 집단 이름으로 제출된 두 번째 및 후속 워크로드에 적용됩니다. 예를 들어 일일 TPC-H 쿼리를 실행하는 예약된 워크로드의 동질 집단 이름으로 TPCH-Query1을 지정합니다.

예를 들면 다음과 같습니다.

...
runtimeConfig:
  cohort: TPCH-Query1
...

Dataproc Serverless의 Gemini 지원 문제 해결

다음 Gemini 지원 문제 해결 미리보기 기능은 Google Cloud 콘솔의 일괄 세부정보일괄 목록 페이지에서 사용할 수 있습니다.

  • 조사 탭: 일괄 세부정보 페이지의 조사 탭에는 다음과 같은 Gemini 지원 문제 해결 패널이 있는 상태 개요(미리보기) 섹션이 있습니다.

    • 자동 조정된 항목 하나 이상의 워크로드에서 자동 조정을 사용 설정한 경우 이 패널에는 실행, 완료, 실패한 워크로드에 적용된 최근 자동 조정 변경사항이 표시됩니다.

    자동 조정 조사 패널

    • 현재 문제 진단권장 조치 Gemini에 질문하기를 클릭하여 실패한 워크로드를 수정하거나 성공했지만 느린 워크로드를 개선하기 위한 추천을 요청합니다.

    Gemini에 질문하기 버튼

    Gemini에 질문하기를 클릭하면 Gemini에서 오류, 이상치 또는 워크로드 로그, Spark 측정항목, Spark 이벤트의 하이라이트에 대한 요약을 생성합니다. Gemini에서 실패한 워크로드를 수정하거나 성공했지만 느린 워크로드의 성능을 개선하기 위해 수행할 수 있는 권장 단계 목록을 표시할 수도 있습니다.

    Gemini로 생성된 통계

  • Gemini 지원 문제 해결 열: 미리보기 출시의 일환으로 Google Cloud 콘솔의 Dataproc Batches 목록 페이지에 What was Autotuned, What is happening now?What can I do about it? 열이 포함됩니다.

    Batches에 나열된 Gemini 열

    완료된 배치가 Failed, Cancelled 또는 Succeeded 상태인 경우에만 Gemini에 질문하기 버튼이 표시되고 사용 설정됩니다. Gemini에 질문하기를 클릭하면 Gemini에서 오류, 이상치 또는 워크로드 로그, Spark 측정항목, Spark 이벤트의 하이라이트에 대한 요약을 생성합니다. Gemini에서 실패한 워크로드를 수정하거나 성공했지만 느린 워크로드의 성능을 개선하기 위해 수행할 수 있는 권장 단계 목록을 표시할 수도 있습니다.

일괄 측정항목 주요 정보

미리보기 출시의 일환으로 Google Cloud 콘솔의 일괄 세부정보 페이지에는 중요한 일괄 워크로드 측정항목 값을 표시하는 차트가 포함되어 있습니다. 배치가 완료된 후 측정항목 차트에 값이 채워집니다.

일괄 측정항목 대시보드

측정항목 표

다음 표는 Google Cloud 콘솔의 일괄 세부정보 페이지에 표시되는 Spark 워크로드 측정항목을 나열하고 측정항목 값이 워크로드 상태 및 성능에 대한 통계를 제공하는 방법을 설명합니다.

측정항목 표시되는 내용
실행자 수준의 측정항목
런타임 대비 JVM GC 시간의 비율 이 측정항목은 실행자당 런타임 대비 JVM GC(가비지 컬렉션) 시간의 비율을 보여줍니다. 비율이 높으면 특정 실행자 또는 비효율적인 데이터 구조에서 실행되는 태스크 내에서 메모리 누수가 발생해 객체 이탈이 늘어날 수 있습니다.
분산된 디스크 바이트 이 측정항목은 여러 실행자에 분산된 총 디스크 바이트 수를 보여줍니다. 실행자에 분산된 많은 디스크 바이트가 표시되는 경우 이는 데이터 편향을 나타낼 수 있습니다. 이 측정항목이 시간이 지나면서 증가한다면 이는 메모리 부족 또는 메모리 누수가 발생한 단계가 있음을 나타낼 수 있습니다.
읽고 쓴 바이트 이 측정항목은 실행자당 작성한 바이트 수와 읽은 바이트 수를 비교하여 보여줍니다. 읽거나 쓰는 바이트 수가 크게 불일치할 경우 복제된 조인이 특정 실행자의 데이터 증폭으로 이어지는 시나리오를 나타낼 수 있습니다.
읽고 쓴 레코드 이 측정항목은 실행자당 읽고 쓴 레코드를 보여줍니다. 읽은 레코드가 많은데 쓴 레코드 수가 적다면 특정 실행자의 처리 로직에 병목 현상이 발생하여 대기 중에 레코드를 읽음을 나타낼 수 있습니다. 읽기 및 쓰기에서 지속적으로 지연되는 실행자는 해당 노드의 리소스 경합 또는 실행자별 코드 비효율성을 나타낼 수 있습니다.
실행 시간 대비 셔플 쓰기 시간 비율 이 측정항목은 실행자가 전체 런타임과 비교하여 셔플 런타임에 소비한 시간을 보여줍니다. 일부 실행자에서 이 값이 높다면 데이터 편향 또는 비효율적인 데이터 직렬화를 나타낼 수 있습니다. Spark UI에서 셔플 쓰기 시간이 긴 스테이지를 식별할 수 있습니다. 이러한 단계 내에서 평균 완료 시간보다 더 오래 걸리는 이상치 태스크를 찾습니다. 셔플 쓰기 시간이 긴 실행자에 높은 디스크 I/O 활동도 표시되는지 확인합니다. 보다 효율적인 직렬화와 추가 파티션 나누기 단계가 도움이 될 수 있습니다. 레코드 읽기에 비해 레코드 쓰기가 매우 크다면 비효율적인 조인이나 잘못된 변환으로 인해 의도하지 않은 데이터 중복이 발생한 것일 수 있습니다.
애플리케이션 수준의 측정항목
단계 진행 이 측정항목은 실패, 대기, 실행 중인 단계의 단계 수를 보여줍니다. 실패 또는 대기 단계가 많으면 데이터 편향을 나타낼 수 있습니다. Spark UI에서 단계 탭을 사용하여 데이터 파티션을 확인하고 단계 실패 이유를 디버깅합니다.
일괄 Spark 실행자 이 측정항목은 실행 중인 실행자 수 대비 필요할 수 있는 실행자 수를 보여줍니다. 필수 실행자와 실행 중인 실행자의 차이가 크다면 자동 확장 문제를 나타낼 수 있습니다.
VM 수준의 측정항목
사용된 메모리 이 측정항목은 사용 중인 VM 메모리의 비율을 보여줍니다. 마스터 비율이 높으면 드라이버가 메모리 부족 상태임을 나타낼 수 있습니다. 다른 VM 노드의 경우 비율이 높으면 실행자의 메모리가 부족하여 디스크 유출이 증가하고 워크로드 런타임이 느려질 수 있음을 의미합니다. Spark UI를 사용하여 실행자를 분석하여 GC 시간이 길고 태스크 실패가 많은지 확인합니다. 또한 대규모 데이터 세트 캐싱 및 불필요한 변수 브로드캐스트를 위해 Spark 코드를 디버깅합니다.

작업 로그

미리보기 출시의 일환으로 Google Cloud 콘솔의 일괄 세부정보 페이지에 작업 (일괄 워크로드) 로그가 나열됩니다. 로그에는 워크로드 출력 및 Spark 로그에서 필터링된 경고 및 오류가 포함됩니다. 로그 심각도를 선택하고 필터를 추가한 후 로그 탐색기에서 보기 아이콘을 클릭하여 로그 탐색기에서 선택한 일괄 로그를 열 수 있습니다.

예를 들어 Google Cloud 콘솔의 일괄 세부정보 페이지에 있는 심각도 선택기에서 Errors를 선택하면 로그 탐색기가 열립니다.

일괄 로그 탐색기

Spark UI(미리보기)

프로젝트를 Spark UI 미리보기 기능에 등록한 경우 Dataproc PHS(영구 기록 서버) 클러스터를 만들지 않고도 Google Cloud 콘솔에서 Spark UI를 볼 수 있습니다. Spark UI는 일괄 워크로드에서 Spark 실행 세부정보를 수집합니다. 자세한 내용은 Spark UI 미리보기 출시의 일부로 등록된 고객에게 배포된 사용자 가이드를 참조하세요.