Managed Service for Apache Spark 성능 개선사항

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

Managed Service for Apache Spark 성능 향상은 다음과 같습니다.

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

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

클러스터 또는 Spark 작업에서 Spark 성능 향상을 사용 설정할 수 있습니다.

가격 책정

Spark 성능 향상은 추가 요금이 발생하지 않습니다. 표준 Managed Service for Apache Spark 가격 책정이 적용됩니다.

고려사항

Spark 성능 향상은 다음 속성을 비롯하여 Spark 속성을 조정합니다.

  • spark.sql.shuffle.partitions: Spark 성능 향상은 2.2 이미지 버전 클러스터에 대해 이 속성을 1000으로 설정합니다. 이 설정은 작은 작업을 느리게 만들 수 있습니다.
  • spark.dataproc.sql.catalog.file.index.stats.enabled: 이 설정은 Hive 파티션 수가 높은 경우 드라이버에서 OOM(메모리 부족) 조건을 일으킬 수 있습니다. 이 속성을 사용 중지하면 OOM 조건이 해결될 수 있습니다.

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

이미지 버전이 2.0.69+, 2.1.17+, 2.2.0+ 이상인 이미지 출시 버전으로 Managed Service for Apache Spark 클러스터를 만들 때 Google Cloud 콘솔, Google Cloud CLI, Managed Service for Apache Spark API를 사용하여 Managed Service for Apache Spark 성능 향상을 사용 설정할 수 있습니다.

콘솔

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

gcloud

  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. 영역을 지정하지 않으면 Managed Service for Apache Spark 자동 영역 배치 기능에서 지정된 리전이 있는 영역을 선택합니다.
    • IMAGE: Managed Service for Apache Spark 최적화 도구 및 실행 성능 향상은 Managed Service for Apache Spark 이미지 버전 2.0.69+2.1.17+ 이상 출시 버전에서 사용할 수 있습니다. 이 플래그를 생략하면 Managed Service for Apache Spark에서 클러스터의 기본 Managed Service for Apache Spark 이미지의 최신 하위 버전이 선택됩니다 (기본 Managed Service for Apache Spark 이미지 버전 참고).
    • 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
      

API

  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"
    

작업 제출 시 향상 사용 설정 또는 중지

콘솔, Google Cloud CLI, Managed Service for Apache Spark API를 사용하여 Managed Service for Apache Spark에 제출된 Spark 작업에서 Spark 성능 향상을 사용 설정 또는 사용 중지할 수 있습니다. Google Cloud

콘솔

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

gcloud

  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=true
      

API

  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"