Dokumen ini menjelaskan properti Spark dan cara menetapkannya. Dataproc Serverless menggunakan properti Spark untuk menentukan resource komputasi, memori, dan disk yang akan dialokasikan ke workload batch Anda. Setelan properti ini dapat memengaruhi konsumsi dan biaya kuota beban kerja. Untuk mengetahui informasi selengkapnya, lihat Kuota Dataproc Serverless dan Harga Dataproc Serverless.
Menetapkan properti workload 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
Di konsol Google Cloud, buka halaman Dataproc create batch.
Di bagian Properties, klik Add Property.
Masukkan
Key
(nama) danValue
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 for Spark mendukung sebagian besar properti Spark, tetapi tidak mendukung properti Spark terkait YARN dan shuffle, seperti spark.master=yarn
dan spark.shuffle.service.enabled
. Jika kode aplikasi Spark menetapkan properti YARN atau shuffle, 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, 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 |
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 lainnya yang berjalan di penampung.
Ukuran memori maksimum penampung tempat driver berjalan ditentukan oleh jumlah Total memori driver per core driver, termasuk overhead memori driver,
harus antara |
10% memori driver, kecuali untuk workload batch PySpark, yang ditetapkan secara default ke 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 ditagih dengan tarif yang lebih tinggi. | standard | standar, premium |
spark.dataproc.driver.disk.size |
Jumlah ruang disk yang dialokasikan untuk driver,
ditentukan dengan akhiran satuan ukuran ("k", "m", "g", atau "t").
Minimal harus 250GiB .
Jika tingkat disk Premium dipilih di driver, ukuran yang valid adalah
375 g, 750 g, 1.500 g, 3.000 g, 6.000 g, atau 9.000 g. Jika tingkat disk Premium dan 16 core driver dipilih, ukuran disk minimum adalah 750g. |
100GiB per core |
1024g , 2t |
spark.dataproc.driver.disk.tier |
Tingkat disk yang akan digunakan untuk penyimpanan lokal dan shuffle di driver.
Tingkat disk Premium menawarkan performa yang lebih baik dalam IOPS dan throughput, tetapi harganya lebih tinggi. Jika tingkat disk Premium dipilih di
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 akan mengalokasikan ruang disk tambahan sebesar 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 |
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,
dan overhead native lainnya, serta mencakup memori eksekutor PySpark dan
memori yang digunakan oleh proses non-eksekutor lainnya yang berjalan di penampung.
Ukuran memori maksimum penampung tempat eksekutor berjalan ditentukan oleh jumlah Total memori eksekutor per core eksekutor, termasuk overhead memori eksekutor, harus antara |
10% memori eksekutor, kecuali untuk workload batch PySpark, yang secara default menggunakan 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 ditagih dengan tarif yang lebih tinggi. | standard | standar, premium |
spark.dataproc.executor.disk.size |
Jumlah ruang disk yang dialokasikan untuk setiap eksekutor,
yang ditentukan dengan akhiran satuan ukuran ("k", "m", "g", atau "t").
Ruang disk eksekutor dapat digunakan untuk mengacak data dan untuk melakukan staging
dependensi. Minimal harus 250GiB .
Jika tingkat disk Premium dipilih di eksekutor, ukuran yang valid adalah
375g, 750g, 1500g, 3000g, 6000g, atau 9000g. Jika tingkat disk Premium dan 16 core eksekutor dipilih, ukuran disk minimum adalah 750 GB. |
100GiB per core |
1024g , 2t |
spark.dataproc.executor.disk.tier |
Tingkat disk yang akan digunakan untuk penyimpanan lokal dan shuffle pada eksekutor.
Tingkat disk Premium menawarkan performa yang lebih baik dalam IOPS dan throughput, tetapi harganya lebih tinggi. Jika tingkat disk Premium dipilih di
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 dialokasikan ruang disk tambahan sebesar 50 GiB untuk penyimpanan sistem, yang tidak dapat digunakan oleh aplikasi pengguna. | standard | standar, premium |
spark.executor.instances |
Jumlah awal eksekutor yang akan dialokasikan. Setelah beban kerja batch dimulai, penskalaan otomatis dapat mengubah jumlah eksekutor aktif. Harus
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 logging
Properti | Deskripsi | Default | Contoh |
---|---|---|---|
spark.log.level |
Jika ditetapkan, setelan log yang ditentukan pengguna akan diganti dengan efek
panggilan ke SparkContext.setLogLevel() saat Spark dimulai. Level log
yang valid mencakup: ALL , DEBUG , ERROR ,
FATAL , INFO , OFF , TRACE ,
dan WARN . |
INFO , DEBUG |
|
spark.executor.syncLogLevel.enabled |
Jika ditetapkan ke true , level log yang diterapkan melalui
metode SparkContext.setLogLevel() akan
disebarkan ke semua eksekutor. |
false |
true , false |
spark.log.level.PackageName |
Jika ditetapkan, akan mengganti setelan log yang ditentukan pengguna
dengan efek panggilan ke SparkContext.setLogLevel(PackageName, level)
saat Spark dimulai. Level log yang valid mencakup: ALL , DEBUG ,
ERROR , FATAL , INFO , OFF ,
TRACE , dan WARN . |
spark.log.level.org.apache.spark=error |
Properti penjadwalan
Properti | Deskripsi | Default | Contoh |
---|---|---|---|
spark.scheduler.excludeShuffleSkewExecutors |
Mengecualikan eksekutor peta shuffle yang miring saat menjadwalkan, yang dapat mengurangi waktu tunggu pengambilan shuffle yang lama yang disebabkan oleh kemiringan tulis shuffle. | false |
true |
spark.scheduler.shuffleSkew.minFinishedTasks |
Jumlah minimum tugas peta shuffle yang telah selesai di eksekutor untuk diperlakukan sebagai skew. | 10 |
100 |
spark.scheduler.shuffleSkew.maxExecutorsNumber |
Jumlah maksimum eksekutor yang akan diperlakukan sebagai skew. Eksekutor yang miring dikecualikan dari putaran penjadwalan saat ini. | 5 | 10 |
spark.scheduler.shuffleSkew.maxExecutorsRatio |
Rasio maksimum total eksekutor yang akan diperlakukan sebagai skew. Eksekutor yang miring dikecualikan dari penjadwalan. | 0,05 | 0.1 |
spark.scheduler.shuffleSkew.ratio |
Kelipatan tugas peta shuffle rata-rata yang telah selesai di eksekutor untuk diperlakukan sebagai skew. | 1,5 | 2.0 |
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 tercantum di kolom API Batch.RuntimeInfo.diagnosticOutputUri. |
dataproc.gcsConnector.version |
Gunakan properti ini untuk mengupgrade ke versi konektor Cloud Storage yang berbeda dengan versi yang diinstal dengan 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 dengan versi runtime workload batch Anda (lihat Menggunakan konektor BigQuery dengan Dataproc Serverless untuk Spark). |
dataproc.profiling.enabled |
Tetapkan properti ini ke true untuk mengaktifkan pembuatan profil untuk beban kerja Dataproc Serverless. |
dataproc.profiling.name |
Gunakan properti ini untuk menetapkan nama yang digunakan untuk membuat profil di layanan Profiler. |