Peningkatan performa Dataproc Spark

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

Peningkatan performa Dataproc Spark mencakup:

  • Peningkatan Spark Optimizer:
    • 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 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 cluster Dataproc di Compute Engine atau saat mengirimkan tugas Spark ke cluster.

Konsol

Mengaktifkan peningkatan saat pembuatan cluster

Lakukan langkah-langkah berikut untuk mengaktifkan pengoptimalan Spark dan peningkatan eksekusi saat Anda membuat cluster Dataproc. Peningkatan yang diaktifkan tetap berlaku untuk semua tugas Spark yang dikirim 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 Create a cluster Dataproc.
  2. Pada 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.

Mengaktifkan peningkatan saat pengiriman 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 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

Mengaktifkan peningkatan saat pembuatan cluster

Lakukan langkah-langkah berikut untuk mengaktifkan pengoptimalan Spark dan peningkatan eksekusi saat Anda membuat cluster Dataproc. Peningkatan yang diaktifkan tetap berlaku untuk semua tugas Spark yang dikirim 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 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 tanda --zone=ZONE opsional untuk menentukan zona dalam region yang ditentukan, seperti us-central1-a. Jika Anda tidak menentukan zona, fitur penempatan zona otomatis Dataproc akan memilih zona dengan region yang ditentukan.
    • IMAGE: Pengoptimal Dataproc Spark dan peningkatan performa eksekusi tersedia di versi image Dataproc 2.0.69+ dan 2.1.17+ serta rilis selanjutnya. Jika Anda menghapus tanda ini, Dataproc akan memilih versi subminor terbaru dari image Dataproc default di Compute Engine 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 dan peningkatan eksekusi Spark, tentukan:
      spark:spark.dataproc.enhanced.optimizer.enabled=true,spark:spark.dataproc.enhanced.execution.enabled=true
      
      

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

API

Mengaktifkan peningkatan saat pembuatan cluster

Lakukan langkah-langkah berikut untuk mengaktifkan pengoptimalan Spark dan peningkatan eksekusi saat Anda membuat cluster Dataproc. Peningkatan yang diaktifkan tetap berlaku untuk semua tugas Spark yang dikirim 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 dan peningkatan eksekusi Spark, tentukan:
    "spark:spark.dataproc.enhanced.optimizer.enabled": "true","spark:spark.dataproc.enhanced.execution.enabled": "true"
    

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