Peningkatan performa Managed Service untuk Apache Spark

Dokumen ini menunjukkan cara mengaktifkan peningkatan performa Spark Managed Service untuk Apache Spark guna membantu tugas Managed Service untuk Apache Spark Anda memproses lebih banyak data dalam waktu yang lebih singkat dengan biaya yang lebih rendah.

Peningkatan performa Managed Service untuk Apache Spark mencakup:

  • Peningkatan Spark Optimizer:
    • Aturan pengoptimal yang ditulis untuk rencana Spark yang lebih baik
    • Peningkatan performa konektor BigQuery Managed Service untuk Apache Spark saat digunakan dalam tugas Spark
  • Peningkatan Eksekusi Spark:
    • Peningkatan mesin eksekusi Spark

Peningkatan performa Managed Service untuk Apache Spark lainnya: Lihat Managed Service untuk Apache Spark Caching cluster, yang membantu mengurangi waktu yang dihabiskan untuk mengakses data di Cloud Storage.

Anda dapat mengaktifkan peningkatan performa Spark pada cluster atau pada tugas Spark:

  • Peningkatan performa Spark yang diaktifkan pada cluster berlaku, secara default, untuk semua tugas Spark yang dijalankan di cluster, baik yang dikirimkan ke Managed Service untuk Apache Spark maupun yang dikirimkan langsung ke cluster.

  • Peningkatan performa Spark juga dapat diaktifkan atau dinonaktifkan pada tugas yang dikirimkan ke Managed Service untuk Apache Spark. Setelan peningkatan performa Spark yang diterapkan ke tugas akan mengganti setelan yang bertentangan yang ditetapkan di tingkat cluster hanya untuk tugas yang ditentukan.

Harga

Peningkatan performa Spark tidak dikenai biaya tambahan. Harga Managed Service untuk Apache Spark standar berlaku.

Pertimbangan

Peningkatan performa Spark menyesuaikan properti Spark, termasuk properti berikut:

  • spark.sql.shuffle.partitions: Peningkatan performa Spark menetapkan properti ini ke 1000 untuk cluster versi image 2.2. Setelan ini dapat memperlambat tugas kecil.
  • spark.dataproc.sql.catalog.file.index.stats.enabled: Setelan ini dapat menyebabkan kondisi OOM (Out-Of-Memory) driver jika jumlah partisi Hive tinggi. Menonaktifkan properti ini dapat memperbaiki kondisi OOM.

Mengaktifkan peningkatan saat pembuatan cluster

Anda dapat menggunakan konsol Google Cloud , Google Cloud CLI, dan Dataproc API untuk mengaktifkan peningkatan performa Managed Service untuk Apache Spark saat membuat cluster Managed Service untuk Apache Spark dengan versi image 2.0.69+, 2.1.17+, 2.2.0+, dan rilis image yang lebih baru.

Konsol

  1. Di Google Cloud konsol, buka halaman Create cluster.
  2. Klik Additional configuration untuk meluaskan bagian tersebut.
  3. Edit Customization &Other.
  4. Di bagian Cluster properties, tambahkan properti berikut:
    • Untuk mengaktifkan peningkatan pengoptimalan Spark:
      1. Klik + Add properties.
      2. Pilih spark di daftar Prefix.
      3. Masukkan spark.dataproc.enhanced.optimizer.enabled di kolom Key dan true di kolom Value.
    • Untuk mengaktifkan peningkatan eksekusi Spark:
      1. Klik + Add properties.
      2. Pilih spark di daftar Prefix.
      3. Masukkan spark.dataproc.enhanced.execution.enabled di kolom Key dan true di kolom Value.
  5. Isi kolom cluster lainnya, lalu klik Create cluster.

gcloud

  1. Jalankan perintah gcloud dataproc clusters create berikut secara lokal di jendela terminal atau di Cloud Shell.

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

    Catatan:

    • CLUSTER_NAME: Nama cluster, yang harus unik dalam project. Nama harus diawali dengan huruf kecil, dan dapat berisi hingga 51 huruf kecil, angka, dan tanda hubung. Nama tidak boleh diakhiri dengan tanda hubung. Nama cluster yang dihapus dapat digunakan kembali.
    • PROJECT_ID: Project yang akan dikaitkan dengan cluster.
    • REGION: Region Compute Engine tempat cluster akan berada, seperti us-central1.
      • Anda dapat menambahkan flag --zone=ZONE opsional untuk menentukan zona dalam region yang ditentukan, seperti us-central1-a. Jika Anda tidak menentukan zona, fitur penempatan autozone Managed Service untuk Apache Spark akan memilih zona dengan region yang ditentukan.
    • IMAGE: Peningkatan performa pengoptimal dan eksekusi Managed Service untuk Apache Spark tersedia dalam versi image Managed Service untuk Apache Spark 2.0.69+ dan 2.1.17+ serta rilis yang lebih baru. Jika Anda menghapus flag ini, Managed Service untuk Apache Spark akan memilih versi subminor terbaru dari image Managed Service untuk Apache Spark default untuk cluster (lihat Versi image Managed Service untuk Apache Spark default).
    • PROPERTIES:

      • Untuk mengaktifkan peningkatan pengoptimalan Spark, tentukan:
      spark:spark.dataproc.enhanced.optimizer.enabled=true
      
      • Untuk mengaktifkan peningkatan eksekusi Spark, tentukan:
      spark:spark.dataproc.enhanced.execution.enabled=true
      
      • Untuk mengaktifkan peningkatan pengoptimalan dan eksekusi Spark, tentukan:
      spark:spark.dataproc.enhanced.optimizer.enabled=true,spark:spark.dataproc.enhanced.execution.enabled=true
      

API

  1. Tentukan berikut SoftwareConfig.properties sebagai bagian dari permintaan clusters.create:

    • Untuk mengaktifkan peningkatan pengoptimalan Spark, tentukan:
    "spark:spark.dataproc.enhanced.optimizer.enabled": "true"
    
    • Untuk mengaktifkan peningkatan eksekusi Spark, tentukan:
    "spark:spark.dataproc.enhanced.execution.enabled": "true"
    
    • Untuk mengaktifkan peningkatan pengoptimalan dan eksekusi Spark, tentukan:
    "spark:spark.dataproc.enhanced.optimizer.enabled": "true","spark:spark.dataproc.enhanced.execution.enabled": "true"
    

Mengaktifkan atau menonaktifkan peningkatan saat pengiriman tugas

Anda dapat menggunakan Google Cloud konsol, Google Cloud CLI, dan Dataproc API untuk mengaktifkan atau menonaktifkan peningkatan performa Spark pada tugas Spark yang dikirimkan ke Managed Service untuk Apache Spark.

Konsol

  1. Di Google Cloud konsol, buka halaman Jobs.
  2. Di halaman Jobs, klik Submit job, lalu scroll ke bagian Properties tugas.
    1. Untuk mengaktifkan peningkatan pengoptimalan Spark:
      1. Klik + Add properties. Tambahkan "spark.dataproc.enhanced.optimizer.enabled" di kolom Key dan "true" di kolom Value.
    2. Untuk mengaktifkan peningkatan eksekusi Spark:
      1. Klik + Add properties.
      2. Tambahkan "spark.dataproc.enhanced.execution.enabled" di kolom Key dan "true" di kolom Value.
  3. Selesaikan pengisian atau konfirmasi kolom pengiriman tugas lainnya, lalu klik Submit.

gcloud

  1. Jalankan perintah gcloud dataproc jobs submit berikut secara lokal di jendela terminal atau di Cloud Shell.

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

    Catatan:

    • SPARK_JOB_TYPE: Tentukan spark, pyspark, spark-sql, atau spark-r .
    • CLUSTER_NAME: Nama tugas tempat tugas akan dijalankan.
    • REGION: Region tempat cluster berada.
    • PROPERTIES:

      • Untuk mengaktifkan peningkatan pengoptimalan Spark, tentukan:
      spark.dataproc.enhanced.optimizer.enabled=true
      
      • Untuk mengaktifkan peningkatan eksekusi Spark, tentukan:
      spark.dataproc.enhanced.execution.enabled=true
      
      • Untuk mengaktifkan peningkatan pengoptimalan dan eksekusi Spark, tentukan:
      spark.dataproc.enhanced.optimizer.enabled=true,spark.dataproc.enhanced.execution.enabled=true
      

API

  1. Tentukan properties berikut untuk SparkJob, PySparkJob, SparkSqlJob, atau SparkRJob sebagai bagian dari permintaan jobs.submit:

    • Untuk mengaktifkan peningkatan pengoptimalan Spark, tentukan:
    "spark.dataproc.enhanced.optimizer.enabled=true"
    
    • Untuk mengaktifkan peningkatan eksekusi Spark, tentukan:
    "spark.dataproc.enhanced.execution.enabled=true"
    
    • Untuk mengaktifkan peningkatan pengoptimalan dan eksekusi Spark, tentukan:
    "spark.dataproc.enhanced.execution.enabled=true,spark.dataproc.enhanced.optimizer.enabled=true"