Peningkatan performa Dataproc Spark

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

Peningkatan performa Spark Dataproc meliputi:

  • Peningkatan Pengoptimal Spark:
    • Aturan pengoptimal yang ditulis untuk paket Spark yang lebih baik
    • Peningkatan performa konektor BigQuery Dataproc saat digunakan dalam tugas Spark
  • Peningkatan Eksekusi Spark:
    • Peningkatan mesin eksekusi Spark

Peningkatan performa Dataproc lainnya: Lihat penge-cache-an cluster Dataproc, yang membantu mengurangi waktu yang dihabiskan untuk mengakses data di Cloud Storage.

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

  • Peningkatan performa Spark yang diaktifkan di cluster diterapkan secara default ke semua tugas Spark yang dijalankan di cluster, baik yang dikirimkan ke layanan Dataproc maupun yang dikirimkan langsung ke cluster.

  • Peningkatan performa Spark juga dapat diaktifkan atau dinonaktifkan pada tugas yang dikirimkan ke layanan Dataproc. Setelan peningkatan performa Spark yang diterapkan pada tugas akan menggantikan setelan yang bertentangan yang ditetapkan di tingkat cluster hanya untuk tugas tertentu.

Harga

Peningkatan performa Spark tidak dikenai biaya tambahan. Harga Dataproc di Compute Engine 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 pekerjaan 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 kualitas saat pembuatan cluster

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

Konsol

  1. Di konsol Google Cloud , buka halaman Dataproc Create a cluster.
  2. Di formulir Create Dataproc cluster, klik Create di baris Cluster on Compute Engine.
  3. Di halaman Create a Dataproc cluster on Compute Engine, klik panel Customize cluster, lalu scroll ke bagian Cluster properties.
    1. Untuk mengaktifkan peningkatan pengoptimalan Spark:
      1. Klik + TAMBAHKAN PROPERTI.
      2. Pilih spark dalam daftar Prefix, lalu tambahkan "spark.dataproc.enhanced.optimizer.enabled" di kolom Key dan "true" di kolom Value.
    2. Untuk mengaktifkan peningkatan eksekusi Spark:
      1. Klik + TAMBAHKAN PROPERTI.
      2. Pilih spark dalam daftar Prefix, lalu tambahkan "spark.dataproc.enhanced.execution.enabled" di kolom Key dan "true" di kolom Value.
  4. Selesaikan pengisian atau konfirmasi kolom pembuatan cluster lainnya, lalu klik Buat.

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. 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 tanda --zone=ZONE opsional untuk menentukan zona dalam region yang ditentukan, seperti us-central1-a. Jika Anda tidak menentukan zona, fitur penempatan autozone Dataproc akan memilih zona dengan region yang ditentukan.
    • IMAGE: Pengoptimal Spark Dataproc dan peningkatan performa eksekusi tersedia di versi image Dataproc 2.0.69+ dan 2.1.17+ serta rilis yang lebih baru. Jika Anda tidak menyertakan tanda ini, Dataproc akan memilih versi subminor terbaru dari image Dataproc di Compute Engine default untuk cluster (lihat Versi image Dataproc 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 pengoptimalan Spark dan peningkatan eksekusi, tentukan:
      spark:spark.dataproc.enhanced.optimizer.enabled=true,spark:spark.dataproc.enhanced.execution.enabled=true
      

API

  1. Tentukan SoftwareConfig.properties berikut 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 kualitas saat pengiriman tugas

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

Konsol

  1. Di konsol Google Cloud , buka halaman Jobs Dataproc.
  2. Di halaman Jobs, klik Submit job, lalu scroll ke bagian Properties tugas.
    1. Untuk mengaktifkan peningkatan pengoptimalan Spark:
      1. Klik + TAMBAHKAN PROPERTI. Tambahkan "spark.dataproc.enhanced.optimizer.enabled" di kolom Key dan "true" di kolom Value.
    2. Untuk mengaktifkan peningkatan eksekusi Spark:
      1. Klik + TAMBAHKAN PROPERTI.
      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 Kirim.

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 pengoptimalan Spark dan peningkatan eksekusi, 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 pengoptimalan Spark dan peningkatan eksekusi, tentukan:
    "spark.dataproc.enhanced.execution.enabled=true,spark.dataproc.enhanced.optimizer.enabled=true"