Dokumen ini menjelaskan properti Spark dan cara menyetelnya. Managed Service untuk Apache Spark 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 workload. Untuk mengetahui informasi selengkapnya, lihat Kuota Managed Service untuk Apache Spark dan Harga Managed Service untuk Apache Spark.
Menetapkan properti workload batch Spark
Anda dapat menentukan properti Spark saat Anda mengirimkan workload batch Managed Service untuk Apache Spark menggunakan Google Cloud konsol, gcloud CLI, atau Dataproc API.
Konsol
Di Google Cloud konsol, buka halaman Managed Service untuk Apache Spark buat batch.
Di bagian Properties, klik Add Property.
Masukkan
Key(nama) danValueproperti Spark yang didukung.
gcloud
Berikut adalah contoh pengiriman batch gcloud CLI. Beberapa properti dipisahkan dengan koma.
gcloud dataproc batches submit spark \ --properties=spark.checkpoint.compress=true,spark.driver.cores=8 \ --region=REGION \ other args ...
API
Tetapkan RuntimeConfig.properties dengan properti Spark yang didukung sebagai bagian dari permintaan batches.create.
Properti Spark yang didukung
Managed Service untuk Apache Spark mendukung sebagian besar properti Spark, tetapi tidak mendukung properti Spark terkait YARN dan terkait 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
Managed Service untuk Apache Spark mendukung properti Spark kustom berikut untuk mengonfigurasi lingkungan runtime:
| Properti | Deskripsi |
|---|---|
spark.dataproc.driverEnv.ENVIRONMENT_VARIABLE_NAME |
Tambahkan ENVIRONMENT_VARIABLE_NAME ke proses driver. Anda dapat menentukan beberapa variabel lingkungan. |
spark.executorEnv.ENVIRONMENT_VARIABLE_NAME |
Tambahkan ENVIRONMENT_VARIABLE_NAME ke proses eksekutor. Anda dapat menentukan beberapa variabel lingkungan. |
Properti tingkat
| Properti | Deskripsi | Default |
|---|---|---|
dataproc.tier |
Tingkat tempat workload batch berjalan, baik standard maupun premium (lihat Tingkat Managed Service untuk Apache Spark). Sesi interaktif
selalu berjalan di dataproc.tier premium.
|
standard |
Properti runtime dan mesin
| Properti | Deskripsi | Default |
|---|---|---|
spark.dataproc.engine |
Mesin yang akan digunakan untuk menjalankan workload batch atau sesi interaktif: lightningEngine
(lihat Lightning Engine) atau mesin default.
|
|
spark.dataproc.lightningEngine.runtime |
Runtime yang akan digunakan saat Lightning Engine dipilih untuk workload batch atau sesi interaktif: default atau native (Eksekusi Kueri Native).
|
default |
Properti alokasi resource
Managed Service untuk Apache 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 lain yang berjalan di container.
Ukuran memori maksimum container tempat driver berjalan adalah
ditentukan oleh jumlah Total memori driver per core driver, termasuk overhead memori driver,
harus antara |
10% memori driver, kecuali untuk workload batch PySpark, yang secara default adalah 40% memori driver | 512m, 2g |
spark.dataproc.driver.compute.tier |
Tingkat komputasi yang akan digunakan pada driver. Tingkat komputasi Premium menawarkan performa per core yang lebih tinggi, tetapi ditagih dengan tarif yang lebih tinggi. | standar | standar, premium |
spark.dataproc.driver.disk.size |
Jumlah ruang disk yang dialokasikan ke driver,
yang ditentukan dengan akhiran unit ukuran ("k", "m", "g", atau "t").
Minimal harus 250GiB.
Jika tingkat disk Premium dipilih pada driver, ukuran yang valid adalah
375g, 750g, 1500g, 3000g, 6000g, atau 9000g. Jika tingkat disk Premium
disk 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 pada driver.
Tingkat disk Premium menawarkan performa yang lebih baik dalam IOPS dan throughput, tetapi
ditagih 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.driver.disk.size.
Jika tingkat disk Premium dipilih, driver akan mengalokasikan ruang disk tambahan sebesar 50GiB untuk penyimpanan sistem, yang tidak dapat digunakan oleh aplikasi pengguna. |
standar | 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, 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 lain yang berjalan di container.
Ukuran memori maksimum container 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 adalah 40% memori eksekutor | 512m, 2g |
spark.dataproc.executor.compute.tier |
Tingkat komputasi yang akan digunakan pada eksekutor. Tingkat komputasi Premium menawarkan performa per core yang lebih tinggi, tetapi ditagih dengan tarif yang lebih tinggi. | standar | standar, premium |
spark.dataproc.executor.disk.size |
Jumlah ruang disk yang dialokasikan ke setiap eksekutor,
yang ditentukan dengan akhiran unit ukuran ("k", "m", "g", atau "t").
Ruang disk eksekutor dapat digunakan untuk data shuffle dan untuk menahapkan
dependensi. Minimal harus 250GiB.
Jika tingkat disk Premium dipilih pada eksekutor, ukuran yang valid adalah
375g, 750g, 1500g, 3000g, 6000g, atau 9000g. Jika tingkat disk Premium
disk dan 16 core eksekutor dipilih,
ukuran disk minimum adalah 750g. |
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
ditagih 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 dialokasikan ruang disk tambahan sebesar 50GiB untuk penyimpanan sistem, yang tidak dapat digunakan oleh aplikasi pengguna. |
standar | standar, premium |
spark.executor.instances |
Jumlah awal eksekutor yang akan dialokasikan. Setelah workload batch
dimulai, penskalaan otomatis dapat mengubah jumlah eksekutor aktif. Minimal harus 2 dan maksimal 2000. |
Properti penyediaan
Managed Service untuk Apache Spark mendukung properti Spark berikut untuk mengonfigurasi penyediaan workload.
| Properti | Deskripsi | Default |
|---|---|---|
spark.dataproc.[driver|executor].provisioning.mode |
Menentukan model penyediaan. Gunakan queue untuk
Dynamic Workload Scheduler (DWS)
Flex Start (default untuk GPU pada versi runtime `3.0`+)
atau default untuk menonaktifkan DWS dan menggunakan penyediaan sesuai permintaan. |
queue (untuk GPU di 3.0+) |
spark.dataproc.[driver|executor].provisioning.allocationTimeout |
Durasi maksimum node pool harus menunggu dalam antrean untuk kapasitas.
The Default adalah 1 jam (3600s) dan
maksimum adalah 2 jam (7200s).
Catatan: Nilai harus diakhiri dengan akhiran 's'. |
3600s |
Properti penskalaan otomatis
Lihat Properti alokasi dinamis Spark untuk mengetahui daftar properti Spark yang dapat Anda gunakan untuk mengonfigurasi Managed Service untuk Apache Spark penskalaan otomatis.
Properti logging
| Properti | Deskripsi | Default | Contoh |
|---|---|---|---|
spark.log.level |
Jika ditetapkan, akan mengganti setelan log yang ditentukan pengguna dengan efek
panggilan ke SparkContext.setLogLevel() saat startup Spark. 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
diterapkan 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 startup Spark. 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 yang miring peta shuffle saat menjadwalkan, yang dapat mengurangi waktu tunggu pengambilan shuffle yang lama yang disebabkan oleh kemiringan penulisan shuffle. | false |
true |
spark.scheduler.shuffleSkew.minFinishedTasks |
Jumlah minimum tugas peta shuffle yang selesai pada eksekutor untuk diperlakukan sebagai kemiringan. | 10 |
100 |
spark.scheduler.shuffleSkew.maxExecutorsNumber |
Jumlah maksimum eksekutor yang akan diperlakukan sebagai kemiringan. Eksekutor yang miring dikecualikan dari putaran penjadwalan saat ini. | 5 | 10 |
spark.scheduler.shuffleSkew.maxExecutorsRatio |
Rasio maksimum total eksekutor yang akan diperlakukan sebagai kemiringan. Eksekutor yang miring dikecualikan dari penjadwalan. | 0,05 | 0.1 |
spark.scheduler.shuffleSkew.ratio |
Kelipatan tugas peta shuffle selesai rata-rata pada an eksekutor yang akan diperlakukan sebagai kemiringan. | 1,5 | 2.0 |
Properti lainnya
| Properti | Deskripsi |
|---|---|
dataproc.diagnostics.enabled |
**Hanya didukung di runtime `2.3` dan yang lebih lama** Aktifkan properti ini untuk menjalankan diagnostik pada kegagalan atau pembatalan workload batch. Jika diagnostik diaktifkan, workload batch Anda akan terus menggunakan resource komputasi setelah workload selesai hingga diagnostik selesai. URI yang mengarah ke lokasi file tar diagnostik tercantum di Batch.RuntimeInfo.diagnosticOutputUri kolom API. |
dataproc.gcsConnector.version |
**Hanya didukung di runtime 2.3 dan yang lebih lama** Gunakan properti ini untuk mengupgrade ke versi konektor Cloud Storage yang berbeda dengan versi yang diinstal dengan versi runtime workload batch Anda. |
dataproc.sparkBqConnector.version |
**Hanya didukung di runtime `2.3` dan yang lebih lama** Gunakan properti ini untuk mengupgrade ke versi konektor Spark BigQuery yang berbeda dengan versi yang diinstal dengan versi runtime workload batch Anda (lihat Menggunakan konektor BigQuery dengan Managed Service for Apache Spark). |
dataproc.profiling.enabled |
**Hanya didukung di runtime `2.3` dan yang lebih lama** Tetapkan properti ini ke true untuk mengaktifkan pembuatan profil untuk workload Managed Service untuk Apache Spark. |
dataproc.profiling.name |
**Hanya didukung di runtime `2.3` dan yang lebih lama** Gunakan properti ini untuk menetapkan nama yang digunakan untuk membuat profil di Profiler layanan. |
spark.jars |
Gunakan properti ini untuk menetapkan daftar jar yang dipisahkan koma yang akan disertakan di classpath driver dan eksekutor |
spark.archives |
Gunakan properti ini untuk menetapkan daftar arsip yang dipisahkan koma yang akan diekstrak ke direktori kerja setiap eksekutor. .jar, .tar.gz, .tgz, dan .zip didukung. Untuk sesi interaktif tanpa server, tambahkan properti ini saat membuat sesi/template interaktif |
dataproc.artifacts.remove |
Gunakan properti ini untuk menghapus artefak default yang diinstal di
runtime Managed Service untuk Apache Spark.
Artefak yang didukung adalah conscrypt, delta-lake, iceberg, rapids, dan spark-bigquery-connector. |