Penyempurnaan performa Dataproc Spark

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

Penyempurnaan performa Dataproc Spark meliputi:

  • Penyempurnaan Spark Optimizer:
    • Aturan Pengoptimal ditulis untuk paket Spark yang lebih baik
    • Peningkatan performa konektor Dataproc BigQuery saat digunakan dalam tugas Spark
  • Peningkatan Eksekusi Spark:
    • Peningkatan performa Spark engine

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

Cara mengaktifkan peningkatan performa Dataproc Spark

Anda dapat menggunakan konsol Google Cloud, Google Cloud CLI, dan Dataproc API untuk mengaktifkan peningkatan performa Dataproc Spark saat membuat Dataproc di cluster Compute Engine atau saat Anda mengirimkan tugas Spark ke cluster Anda.

Konsol

Aktifkan peningkatan saat pembuatan cluster

Lakukan langkah-langkah berikut untuk mengaktifkan pengoptimalan Spark dan penyempurnaan eksekusi saat Anda membuat cluster Dataproc. Penyempurnaan yang diaktifkan tetap berlaku untuk semua tugas Spark yang dikirimkan ke cluster, kecuali jika Anda menonaktifkan peningkatan untuk tugas tertentu saat mengirimkan tugas. Secara default, peningkatan performa Dataproc Spark dinonaktifkan di cluster Dataproc.

  1. Di Konsol Google Cloud, buka halaman Buat cluster Dataproc.
  2. Pada formulir Buat cluster Dataproc, klik Buat di baris Cluster di Compute Engine.
  3. Di halaman Buat cluster Dataproc di Compute Engine, klik panel Sesuaikan cluster, lalu scroll ke bagian Properti cluster.
    1. Untuk mengaktifkan peningkatan pengoptimalan Spark:
      1. Klik + TAMBAHKAN PROPERTI.
      2. Pilih spark di 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 di daftar Prefix, lalu tambahkan "spark.dataproc.enhanced.execution.enabled" di kolom Key dan "true" di kolom Value.
  4. Isi atau konfirmasi kolom pembuatan cluster lainnya, lalu klik Buat.

Mengaktifkan peningkatan kualitas saat mengirimkan tugas

Lakukan langkah-langkah berikut untuk mengaktifkan pengoptimalan Spark dan peningkatan eksekusi untuk tugas Spark. Secara default, peningkatan performa Dataproc Spark dinonaktifkan pada tugas Spark, kecuali jika Anda mengaktifkan peningkatan saat membuat cluster tugas atau mengaktifkannya untuk tugas tertentu.

  1. Di Konsol Google Cloud, buka halaman Tugas Dataproc.
  2. Di halaman Tugas, klik Kirim tugas, lalu scroll ke bagian Properti 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. Isi atau konfirmasi kolom pengiriman tugas lainnya, lalu klik Kirim.

gcloud

Aktifkan peningkatan saat pembuatan cluster

Lakukan langkah-langkah berikut untuk mengaktifkan pengoptimalan Spark dan penyempurnaan eksekusi saat Anda membuat cluster Dataproc. Penyempurnaan yang diaktifkan tetap berlaku untuk semua tugas Spark yang dikirimkan ke cluster, kecuali jika Anda menonaktifkan peningkatan untuk tugas tertentu saat mengirimkan tugas. Secara default, peningkatan performa Dataproc Spark dinonaktifkan di cluster Dataproc.

  1. Jalankan perintah gcloud dataproc cluster 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 dimulai 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 flag --zone=ZONE opsional untuk menentukan zona dalam region yang ditentukan, seperti us-central1-a. Jika zona tidak ditentukan, fitur penempatan zona otomatis Dataproc akan memilih zona dengan region yang ditentukan.
    • IMAGE: Peningkatan performa pengoptimal dan eksekusi Dataproc Spark tersedia dalam image Dataproc versi 2.0.69+ dan 2.1.17+ serta rilis yang lebih baru. Jika Anda menghilangkan flag ini, Dataproc akan memilih versi subminor terbaru dari image Dataproc default di Compute Engine untuk cluster (lihat Versi gambar 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
      
      

Mengaktifkan peningkatan kualitas saat mengirimkan tugas

Lakukan langkah-langkah berikut untuk mengaktifkan pengoptimalan Spark dan peningkatan eksekusi untuk tugas Spark. Secara default, peningkatan performa Dataproc Spark dinonaktifkan pada tugas Spark, kecuali jika Anda mengaktifkan peningkatan saat membuat cluster tugas atau mengaktifkannya untuk tugas tertentu.

  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
      

API

Aktifkan peningkatan saat pembuatan cluster

Lakukan langkah-langkah berikut untuk mengaktifkan pengoptimalan Spark dan penyempurnaan eksekusi saat Anda membuat cluster Dataproc. Penyempurnaan yang diaktifkan tetap berlaku untuk semua tugas Spark yang dikirimkan ke cluster, kecuali jika Anda menonaktifkan peningkatan untuk tugas tertentu saat mengirimkan tugas. Secara default, peningkatan performa Dataproc Spark dinonaktifkan di cluster Dataproc.

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

Mengaktifkan peningkatan kualitas saat mengirimkan tugas

Lakukan langkah-langkah berikut untuk mengaktifkan pengoptimalan Spark dan peningkatan eksekusi untuk tugas Spark. Secara default, peningkatan performa Dataproc Spark dinonaktifkan pada tugas Spark, kecuali jika Anda mengaktifkan peningkatan saat membuat cluster tugas atau mengaktifkannya untuk tugas tertentu.

  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"