Properti Spark

Dataproc Serverless menggunakan properti Spark untuk menentukan komputasi, memori, dan resource disk yang akan dialokasikan ke beban kerja batch Anda. Setelan properti ini dapat memengaruhi konsumsi kuota dan biaya workload (lihat Kuota Dataproc Serverless dan Harga Serverless Dataproc untuk mengetahui informasi selengkapnya).

Menetapkan properti beban kerja batch Spark

Anda dapat menentukan properti Spark saat mengirimkan beban kerja batch Dataproc Serverless Spark menggunakan Konsol Google Cloud, gcloud CLI, atau Dataproc API.

Konsol

  1. Buka halaman Buat batch Dataproc di Konsol Google Cloud.

  2. Di bagian Properties, klik Add Property, lalu masukkan Key (nama) dan Value dari properti Spark yang didukung.

gcloud

Contoh pengiriman batch gcloud CLI:

gcloud dataproc batches submit spark
    --properties=spark.checkpoint.compress=true \
    --region=region \
    other args ...

API

Tetapkan RuntimeConfig.properties dengan properti Spark yang didukung sebagai bagian dari permintaan batches.create.

Properti Spark yang didukung

Dataproc Serverless untuk Spark mendukung sebagian besar properti Spark, tetapi tidak mendukung properti Spark yang terkait YARN dan acak, seperti spark.master=yarn dan spark.shuffle.service.enabled. Jika kode aplikasi Spark menetapkan properti YARN atau acak, aplikasi akan gagal.

Properti lingkungan runtime

Dataproc Serverless untuk Spark mendukung properti Spark kustom berikut untuk mengonfigurasi lingkungan runtime:

Properti Deskripsi
spark.dataproc.driverEnv.EnvironmentVariableName Tambahkan EnvironmentVariableName ke proses driver. Anda dapat menentukan beberapa variabel lingkungan.

Properti alokasi resource

Dataproc Serverless untuk Spark mendukung properti Spark berikut untuk mengonfigurasi alokasi resource:

Properti Deskripsi Default Contoh
spark.driver.cores Jumlah core (vCPU) yang akan dialokasikan ke driver Spark. Nilai yang valid: 4, 8, 16. 4
spark.driver.memory

Jumlah memori yang akan dialokasikan ke proses driver Spark, yang ditentukan dalam format string memori JVM dengan akhiran unit ukuran ("m", "g", atau "t").

Total memori driver per core driver, termasuk overhead memori driver, yang harus antara 1024m dan 7424m untuk tingkat komputasi Standar (24576m untuk tingkat komputasi Premium). Misalnya, jika spark.driver.cores = 4, maka 4096m <= spark.driver.memory + spark.driver.memoryOverhead <= 29696m.

512m, 2g
spark.driver.memoryOverhead

Jumlah memori JVM tambahan yang akan dialokasikan ke proses driver Spark, yang ditentukan dalam format string memori JVM dengan akhiran unit ukuran ("m", "g", atau "t").

Ini adalah memori non-heap yang terkait dengan overhead JVM, string internal, dan overhead native lainnya, serta mencakup memori yang digunakan oleh proses driver lain, seperti proses driver PySpark dan memori yang digunakan oleh proses non-driver lain yang berjalan dalam container. Ukuran memori maksimum dari container tempat driver berjalan ditentukan oleh jumlah spark.driver.memoryOverhead ditambah spark.driver.memory.

Total memori driver per core driver, termasuk overhead memori driver, harus antara 1024m dan 7424m untuk tingkat komputasi Standar (24576m untuk tingkat komputasi Premium). Misalnya, jika spark.driver.cores = 4, maka 4096m <= spark.driver.memory + spark.driver.memoryOverhead <= 29696m.

10% memori driver, kecuali untuk workload batch PySpark, yang setelan defaultnya adalah 40% memori driver 512m, 2g
spark.dataproc.driver.compute.tier Tingkat komputasi yang akan digunakan pada driver. Paket komputasi Premium menawarkan performa per core yang lebih tinggi, tetapi tarifnya tetap lebih tinggi. standard standar, premium
spark.dataproc.driver.disk.size Jumlah ruang disk yang dialokasikan untuk driver, ditentukan dengan akhiran unit ukuran ("k", "m", "g", atau "t"). Minimal harus 250GiB. Jika tingkat disk Premium dipilih pada driver, ukuran yang valid adalah 375 g, 750 g, 1500 g, 3000 g, 6000 g, atau 9000 g. 100GiB per inti 1024g, 2t
spark.dataproc.driver.disk.tier Tingkat disk yang akan digunakan untuk penyimpanan lokal dan acak pada driver. Paket disk Premium menawarkan performa yang lebih baik dalam IOPS dan throughput, tetapi dengan tarif yang lebih tinggi. Jika tingkat disk Premium dipilih pada driver, tingkat komputasi Premium juga harus dipilih menggunakan spark.dataproc.driver.compute.tier=premium, dan jumlah ruang disk harus ditentukan menggunakan spark.dataproc.executor.disk.size.

Jika tingkat disk Premium dipilih, driver mengalokasikan ruang disk tambahan 50 GiB untuk penyimpanan sistem, yang tidak dapat digunakan oleh aplikasi pengguna.

standard standar, premium
spark.executor.cores Jumlah core (vCPU) yang akan dialokasikan ke setiap eksekutor Spark. Nilai yang valid: 4, 8, 16. 4
spark.executor.memory

Jumlah memori yang akan dialokasikan ke setiap proses eksekutor Spark, yang ditentukan dalam format string memori JVM dengan akhiran unit ukuran ("m", "g", atau "t").

Total memori eksekutor per core eksekutor, termasuk overhead memori eksekutor, harus antara 1024m dan 7424m untuk tingkat komputasi Standar (24576m untuk paket komputasi Premium). Misalnya, jika spark.executor.cores = 4, maka 4096m <= spark.executor.memory + spark.executor.memoryOverhead <= 29696m.

512m, 2g
spark.executor.memoryOverhead

Jumlah memori JVM tambahan yang akan dialokasikan ke proses eksekutor Spark, yang ditentukan dalam format string memori JVM dengan akhiran unit ukuran ("m", "g", atau "t").

Ini adalah memori non-heap yang digunakan untuk overhead JVM, string internal, serta overhead native lainnya, dan mencakup memori eksekutor PySpark dan memori yang digunakan oleh proses non-eksekutor lain yang berjalan di container. Ukuran memori maksimum container tempat eksekutor berjalan ditentukan oleh jumlah spark.executor.memoryOverhead ditambah spark.executor.memory.

Total memori eksekutor per core eksekutor, termasuk overhead memori eksekutor, harus antara 1024m dan 7424m untuk tingkat komputasi Standar (24576m untuk paket komputasi Premium). Misalnya, jika spark.executor.cores = 4, maka 4096m <= spark.executor.memory + spark.executor.memoryOverhead <= 29696m.

10% memori eksekutor, kecuali untuk workload batch PySpark, yang setelan defaultnya adalah 40% memori eksekutor 512m, 2g
spark.dataproc.executor.compute.tier Tingkat komputasi yang akan digunakan pada eksekutor. Paket komputasi Premium menawarkan performa per core yang lebih tinggi, tetapi tarifnya tetap lebih tinggi. standard standar, premium
spark.dataproc.executor.disk.size Jumlah ruang disk yang dialokasikan untuk setiap eksekutor, yang ditentukan dengan akhiran unit ukuran ("k", "m", "g", atau "t"). Kapasitas disk Executor dapat digunakan untuk mengacak data dan untuk menentukan dependensi. Minimal harus 250GiB. Jika tingkat disk Premium dipilih pada eksekutor, ukuran yang valid adalah 375 g, 750 g, 1500 g, 3000 g, 6.000 g, atau 9.000 g. 100GiB per inti 1024g, 2t
spark.dataproc.executor.disk.tier Tingkat disk yang akan digunakan untuk penyimpanan lokal dan acak pada eksekutor. Paket disk Premium menawarkan performa yang lebih baik dalam IOPS dan throughput, tetapi dengan tarif yang lebih tinggi. Jika tingkat disk Premium dipilih pada eksekutor, tingkat komputasi Premium juga harus dipilih menggunakan spark.dataproc.executor.compute.tier=premium, dan jumlah ruang disk harus ditentukan menggunakan spark.dataproc.executor.disk.size.

Jika tingkat disk Premium dipilih, setiap eksekutor akan mendapatkan ruang disk tambahan sebesar 50 GiB untuk penyimpanan sistem, yang tidak dapat digunakan oleh aplikasi pengguna.

standard standar, premium
spark.executor.instances Jumlah eksekutor awal yang akan dialokasikan. Setelah workload batch dimulai, penskalaan otomatis dapat mengubah jumlah eksekutor aktif. Minimal 2 dan maksimal 2000.

Properti penskalaan otomatis

Lihat Properti alokasi dinamis Spark untuk mengetahui daftar properti Spark yang dapat Anda gunakan untuk mengonfigurasi penskalaan otomatis Dataproc Serverless.

Properti lainnya

Properti Deskripsi
dataproc.diagnostics.enabled Aktifkan properti ini untuk menjalankan diagnostik pada kegagalan atau pembatalan beban kerja batch. Jika diagnostik diaktifkan, workload batch Anda akan terus menggunakan resource komputasi setelah workload selesai hingga diagnostik selesai. URI yang mengarah ke lokasi tarball diagnostik dicantumkan di kolom Batch.RuntimeInfo.diagnosticOutputUri API.
dataproc.gcsConnector.version Gunakan properti ini untuk mengupgrade ke versi konektor Cloud Storage yang berbeda dengan versi yang diinstal pada versi runtime beban kerja batch Anda.
dataproc.sparkBqConnector.version Gunakan properti ini untuk mengupgrade ke versi konektor BigQuery Spark yang berbeda dengan versi yang diinstal pada versi runtime beban kerja batch Anda (lihat Menggunakan konektor BigQuery dengan Dataproc Serverless untuk Spark).