Cloud Profiler

Cloud Profiler는 애플리케이션 CPU 사용량과 메모리 할당 정보를 지속적으로 수집하고 보고합니다.

요구사항:

  • Profiler는 Dataproc Hadoop 및 Spark 작업 유형(Spark, PySpark, SparkSql, SparkR)만 지원합니다.

  • Profiler가 데이터를 수집하고 프로젝트에 업로드하려면 작업이 3분 넘게 실행되어야 합니다.

Dataproc은 cloud.profiler.enable 및 다른 cloud.profiler.* 속성(Profiler 옵션 참조)을 인식한 후 관련 프로파일러 JVM 옵션을 다음 구성에 추가합니다.

  • Spark: spark.driver.extraJavaOptionsspark.executor.extraJavaOptions
  • 맵리듀스: mapreduce.task.profile 및 기타 mapreduce.task.profile.* 속성

프로파일링 사용 설정

Dataproc Spark 및 Hadoop 작업에서 Profiler를 사용 설정하고 사용하려면 다음 단계를 완료하세요.

  1. Profiler를 사용 설정합니다.

  2. 클러스터가 프로파일러 서비스와 통신할 수 있도록 서비스 계정 범위monitoring으로 설정된 Dataproc 클러스터를 만듭니다.

  3. 커스텀 VM 서비스 계정을 사용하는 경우 커스텀 VM 서비스 계정에 Cloud Profiler Agent 역할을 부여합니다. 이 역할에는 필요한 프로파일러 서비스 권한이 포함되어 있습니다.

gcloud

gcloud dataproc clusters create cluster-name \
    --scopes=cloud-platform \
    --region=region \
    other args ...

Profiler 옵션으로 Dataproc 작업 제출

  1. 다음 Profiler 옵션 중 하나 이상을 사용하여 Dataproc Spark 또는 Hadoop 작업을 제출합니다.
    옵션 설명 필수/선택사항 기본값 참고
    cloud.profiler.enable 작업 프로파일링 사용 설정 true 또는 false 필수 false
    cloud.profiler.name Profiler 서비스에서 프로필을 만드는 데 사용되는 이름 profile-name 선택사항 Dataproc 작업 UUID
    cloud.profiler.service.version 프로파일러 결과를 식별하고 구분하는 사용자 제공 문자열 Profiler Service Version 선택사항 Dataproc 작업 UUID
    mapreduce.task.profile.maps 프로파일링할 매핑 작업의 숫자 범위(예시: 최대 100의 경우 '0~100' 지정) number range 선택사항 0-10000 Hadoop 맵리듀스 작업에만 적용
    mapreduce.task.profile.reduces 프로파일링할 감소기 작업의 숫자 범위(예시: 최대 100의 경우 '0~100' 지정) number range 선택사항 0-10000 Hadoop 맵리듀스 작업에만 적용

PySpark 예시

Google Cloud CLI

프로파일링 예시를 사용한 PySpark 작업 제출:

gcloud dataproc jobs submit pyspark python-job-file \
    --cluster=cluster-name \
    --region=region \
    --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \
    --  job args

두 개의 프로필이 생성됩니다.

  1. Spark 드라이버 작업을 프로파일링하는 profiler_name-driver
  2. Spark Executor 작업을 프로파일링하는 profiler_name-executor

예를 들어 profiler_name이 'spark_word_count_job'이면 spark_word_count_job-driverspark_word_count_job-executor 프로필이 생성됩니다.

Hadoop 예시

gcloud CLI

프로파일링 예시를 사용한 Hadoop(teragen mapreduce) 작업 제출:

gcloud dataproc jobs submit hadoop \
    --cluster=cluster-name \
    --region=region \
    --jar=jar-file \
    --properties=cloud.profiler.enable=true,cloud.profiler.name=profiler_name,cloud.profiler.service.version=version \
    --  teragen 100000 gs://bucket-name

프로필 보기

Google Cloud 콘솔의 Profiler에서 프로필을 확인합니다.

다음 단계