Dataproc Spark 성능 향상

이 문서에서는 Dataproc Spark 성능 향상을 사용 설정하여 Dataproc Spark 작업의 데이터 처리량을 늘리면서 시간과 비용을 절감하는 방법을 보여줍니다.

Dataproc Spark 성능 향상에는 다음이 포함됩니다.

  • Spark 최적화 도구 개선사항:
    • Spark 계획을 개선하기 위해 작성된 최적화 도구 규칙
    • Spark 작업에 사용될 때 Dataproc BigQuery 커넥터의 성능 향상
  • Spark 실행 개선사항:
    • Spark 실행 엔진 개선

기타 Dataproc 성능 향상: Cloud Storage의 데이터에 액세스하는 데 걸리는 시간을 줄이는 데 도움이 되는 Dataproc 클러스터 캐싱을 참조하세요.

Dataproc Spark 성능 향상을 사용 설정하는 방법

Compute Engine 클러스터에 Dataproc을 만들거나 클러스터에 Spark 작업을 제출할 때 Google Cloud 콘솔, Google Cloud CLI, Dataproc API를 사용하여 Dataproc Spark 성능 향상을 사용 설정할 수 있습니다.

콘솔

클러스터 생성 시 개선사항 사용 설정

Dataproc 클러스터를 만들 때 Spark 최적화 및 실행 개선사항을 사용 설정하려면 다음 단계를 수행합니다. 사용 설정된 개선사항은 작업을 제출할 때 특정 작업에서 개선사항을 사용 중지하지 않는 한 클러스터에 제출되는 모든 Spark 작업에 적용됩니다. 기본적으로 Dataproc Spark 성능 향상은 Dataproc 클러스터에서 사용 중지됩니다.

  1. Google Cloud 콘솔에서 Dataproc 클러스터 만들기 페이지를 엽니다.
  2. Dataproc 클러스터 만들기 양식의 Compute Engine의 클러스터 줄에서 만들기를 클릭합니다.
  3. Compute Engine에서 Dataproc 클러스터 만들기 페이지에서 클러스터 맞춤설정 패널을 클릭한 후 클러스터 속성 섹션으로 스크롤합니다.
    1. Spark 최적화 개선사항을 사용 설정하려면 다음 안내를 따르세요.
      1. + 속성 추가를 클릭합니다.
      2. 프리픽스 목록에서 spark를 선택하고 필드에 'spark.dataproc.enhanced.optimizer.enabled'를, 필드에 'true'를 추가합니다.
    2. Spark 실행 개선사항을 사용 설정하려면 다음 안내를 따르세요.
      1. + 속성 추가를 클릭합니다.
      2. 프리픽스 목록에서 spark를 선택하고 필드에 'spark.dataproc.enhanced.execution.enabled'를, 필드에 'true'를 추가합니다.
  4. 다른 클러스터 만들기 필드를 채우거나 확인한 후 만들기를 클릭합니다.

작업 제출 시 개선사항 사용 설정

Spark 작업에 Spark 최적화 및 실행 개선사항을 사용 설정하려면 다음 단계를 수행합니다. 개선사항을 작업 클러스터 생성 시 사용 설정하거나 특정 작업에 대해 사용 설정하지 않으면 기본적으로 Dataproc Spark 성능 향상은 Spark 작업에서 사용 중지됩니다.

  1. Google Cloud 콘솔에서 Dataproc 작업 페이지를 엽니다.
  2. 작업 페이지에서 작업 제출을 클릭한 다음 작업 속성 섹션으로 스크롤합니다.
    1. Spark 최적화 개선사항을 사용 설정하려면 다음 안내를 따르세요.
      1. + 속성 추가를 클릭합니다. 필드에 'spark.dataproc.enhanced.optimizer.enabled'를, 필드에 'true'를 추가합니다.
    2. Spark 실행 개선사항을 사용 설정하려면 다음 안내를 따르세요.
      1. + 속성 추가를 클릭합니다.
      2. 필드에 'spark.dataproc.enhanced.execution.enabled'를, 필드에 'true'를 추가합니다.
  3. 다른 작업 제출 필드를 채우거나 확인한 후 제출을 클릭합니다.

gcloud

클러스터 생성 시 개선사항 사용 설정

Dataproc 클러스터를 만들 때 Spark 최적화 및 실행 개선사항을 사용 설정하려면 다음 단계를 수행합니다. 사용 설정된 개선사항은 작업을 제출할 때 특정 작업에서 개선사항을 사용 중지하지 않는 한 클러스터에 제출되는 모든 Spark 작업에 적용됩니다. 기본적으로 Dataproc Spark 성능 향상은 Dataproc 클러스터에서 사용 중지됩니다.

  1. 다음 gcloud dataproc clusters create 명령어를 터미널 창에서 로컬로 실행하거나 Cloud Shell에서 실행합니다.

    gcloud dataproc clusters create CLUSTER_NAME \
        --project=PROJECT_ID \
        --region=REGION \
        --image-version=IMAGE \
        --properties=PROPERTIES
    

    참고:

    • CLUSTER_NAME: 프로젝트 내에서 고유해야 하는 클러스터 이름입니다. 이름은 소문자로 시작해야 하며, 최대 51자(영문 기준)의 소문자, 숫자, 하이픈을 포함할 수 있습니다. 하이픈으로 끝나면 안 됩니다. 삭제된 클러스터의 이름을 재사용할 수 있습니다.
    • PROJECT_ID: 클러스터와 연결할 프로젝트입니다.
    • REGION: 클러스터가 있는 Compute Engine 리전(예: us-central1)입니다.
      • 선택사항인 --zone=ZONE 플래그를 추가하여 us-central1-a와 같이 지정된 리전 내의 영역을 지정할 수 있습니다. 영역을 지정하지 않으면 Dataproc 자동 영역 배치 기능에서 지정된 리전이 있는 영역을 선택합니다.
    • IMAGE: Dataproc Spark 최적화 도구 및 실행 성능 향상은 Dataproc 이미지 버전 2.0.69+, 2.1.17+ 및 이후 출시 버전에서 사용할 수 있습니다. 이 플래그를 생략하면 Dataproc이 클러스터 Compute Engine 이미지에 있는 기본 Dataproc의 최신 하위 부 버전을 선택합니다(기본 Dataproc 이미지 버전 참조).
    • PROPERTIES:

      • Spark 최적화 개선사항을 사용 설정하려면 다음을 지정합니다.
      spark:spark.dataproc.enhanced.optimizer.enabled=true
      
      • Spark 실행 개선사항을 사용 설정하려면 다음을 지정합니다.
      spark:spark.dataproc.enhanced.execution.enabled=true
      
      • Spark 최적화 및 실행 개선사항을 사용 설정하려면 다음을 지정합니다.
      spark:spark.dataproc.enhanced.optimizer.enabled=true,spark:spark.dataproc.enhanced.execution.enabled=true
      
      

작업 제출 시 개선사항 사용 설정

Spark 작업에 Spark 최적화 및 실행 개선사항을 사용 설정하려면 다음 단계를 수행합니다. 개선사항을 작업 클러스터 생성 시 사용 설정하거나 특정 작업에 대해 사용 설정하지 않으면 기본적으로 Dataproc Spark 성능 향상은 Spark 작업에서 사용 중지됩니다.

  1. 다음 gcloud dataproc jobs submit 명령어를 터미널 창에서 로컬로 실행하거나 Cloud Shell에서 실행합니다.

    gcloud dataproc jobs submit SPARK_JOB_TYPE \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --properties=PROPERTIES
    

    참고:

    • SPARK_JOB_TYPE: spark, pyspark, spark-sql 또는 spark-r을 지정합니다.
    • CLUSTER_NAME: 작업이 실행될 작업의 이름입니다.
    • REGION: 클러스터가 있는 리전입니다.
    • PROPERTIES:

      • Spark 최적화 개선사항을 사용 설정하려면 다음을 지정합니다.
      spark.dataproc.enhanced.optimizer.enabled=true
      
      • Spark 실행 개선사항을 사용 설정하려면 다음을 지정합니다.
      spark.dataproc.enhanced.execution.enabled=true
      
      • Spark 최적화 및 실행 개선사항을 사용 설정하려면 다음을 지정합니다.
      spark.dataproc.enhanced.optimizer.enabled=true,spark.dataproc.enhanced.execution.enabled
      

API

클러스터 생성 시 개선사항 사용 설정

Dataproc 클러스터를 만들 때 Spark 최적화 및 실행 개선사항을 사용 설정하려면 다음 단계를 수행합니다. 사용 설정된 개선사항은 작업을 제출할 때 특정 작업에서 개선사항을 사용 중지하지 않는 한 클러스터에 제출되는 모든 Spark 작업에 적용됩니다. 기본적으로 Dataproc Spark 성능 향상은 Dataproc 클러스터에서 사용 중지됩니다.

  1. clusters.create 요청의 일부로 다음 SoftwareConfig.properties를 지정합니다.

    • Spark 최적화 개선사항을 사용 설정하려면 다음을 지정합니다.
    "spark:spark.dataproc.enhanced.optimizer.enabled": "true"
    
    • Spark 실행 개선사항을 사용 설정하려면 다음을 지정합니다.
    "spark:spark.dataproc.enhanced.execution.enabled": "true"
    
    • Spark 최적화 및 실행 개선사항을 사용 설정하려면 다음을 지정합니다.
    "spark:spark.dataproc.enhanced.optimizer.enabled": "true","spark:spark.dataproc.enhanced.execution.enabled": "true"
    

작업 제출 시 개선사항 사용 설정

Spark 작업에 Spark 최적화 및 실행 개선사항을 사용 설정하려면 다음 단계를 수행합니다. 개선사항을 작업 클러스터 생성 시 사용 설정하거나 특정 작업에 대해 사용 설정하지 않으면 기본적으로 Dataproc Spark 성능 향상은 Spark 작업에서 사용 중지됩니다.

  1. jobs.submit 요청의 일부로 SparkJob, PySparkJob, SparkSqlJob 또는 SparkRJob에 다음 properties를 지정합니다.

    • Spark 최적화 개선사항을 사용 설정하려면 다음을 지정합니다.
    "spark.dataproc.enhanced.optimizer.enabled=true"
    
    • Spark 실행 개선사항을 사용 설정하려면 다음을 지정합니다.
    "spark.dataproc.enhanced.execution.enabled=true"
    
    • Spark 최적화 및 실행 개선사항을 사용 설정하려면 다음을 지정합니다.
    "spark.dataproc.enhanced.execution.enabled=true,spark.dataproc.enhanced.optimizer.enabled=true"