Spark 리소스 사용량을 위한 Dataproc Serverless 프로파일링

Cloud Profiler는 애플리케이션 CPU 사용량과 메모리 할당 정보를 지속적으로 수집하고 보고합니다. 다음 표에 나열된 프로파일링 속성을 사용하여 일괄 처리를 제출하거나 세션 워크로드를 만들 때 프로파일링을 사용 설정할 수 있습니다. Spark를 위한 Dataproc Serverless는 워크로드에 사용되는 spark.driver.extraJavaOptionsspark.executor.extraJavaOptions 구성에 관련 JVM 옵션을 추가합니다.

옵션 설명 기본값
dataproc.profiling.enabled 워크로드 프로파일링 사용 설정 true 또는 false false
dataproc.profiling.name Profiler 서비스의 프로필 이름 PROFILE_NAME spark-WORKLOAD_TYPE-WORKLOAD_ID, 각 항목의 의미는 다음과 같습니다.
  • WORKLOAD_TYPE이 batch 또는 session으로 설정됨
  • WORKLOAD_ID가 batchId 또는 sessionId로 설정됨

참고:

  • Spark를 위한 Dataproc Serverless는 프로파일러 버전을 일괄 UUID 또는 세션 UUID로 설정합니다.
  • Profiler는 Spark, PySpark, SparkSql, SparkR과 같은 Spark 워크로드 유형을 지원합니다.
  • Profiler가 데이터를 수집하고 프로젝트에 업로드하려면 워크로드가 3분 넘게 실행되어야 합니다.
  • SparkConf를 구성한 다음 코드에서 extraJavaOptions를 설정하여 워크로드와 함께 제출된 프로파일링 옵션을 재정의할 수 있습니다. 워크로드가 제출될 때 extraJavaOptions 속성을 설정해도 워크로드와 함께 제출된 프로파일링 옵션은 재정의되지 않습니다.

일괄 제출에 사용되는 프로파일러 옵션의 예시는 PySpark 일괄 워크로드 예시를 참조하세요.

프로파일링 사용 설정

워크로드에서 프로파일링을 사용 설정하려면 다음 단계를 완료하세요.

  1. Profiler를 사용 설정합니다.
  2. 커스텀 VM 서비스 계정을 사용하는 경우 커스텀 VM 서비스 계정에 Cloud Profiler 에이전트 역할을 부여합니다. 이 역할에는 필수 Profiler 권한이 포함됩니다.
  3. 일괄 워크로드를 제출하거나 세션 템플릿을 만들 때 프로파일링 속성을 설정합니다.

PySpark 일괄 워크로드 예시

다음 예시에서는 gcloud CLI를 사용하여 프로파일링이 사용 설정된 PySpark 일괄 워크로드를 제출합니다.

gcloud dataproc batches submit pyspark PYTHON_WORKLOAD_FILE \
    --region=REGION \
    --properties=dataproc.profiling.enabled=true,dataproc.profiling.name=PROFILE_NAME \
    --  other args

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

  • Spark 드라이버 작업을 프로파일링하는 PROFILE_NAME-driver
  • Spark Executor 작업을 프로파일링하는 PROFILE_NAME-executor

프로필 보기

Google Cloud 콘솔의 Profiler에서 프로필을 확인할 수 있습니다.

다음 단계