Runtime Managed Service untuk Apache Spark 4.0

Komponen runtime Spark versi 4.0

Komponen 4.0.0
Apache Spark 4.2.0
Konektor Cloud Storage 4.0.7
BigQuery Connector 0.46.0
Java 25
Python 3.13
Scala 2.13.17

Catatan:

  • Runtime 4.0 menggunakan UTF-8 sebagai encoding karakter default.

  • Runtime 4.0 menggunakan Pixi, bukan Conda, untuk mengelola lingkungan Python-nya. Untuk paket yang disertakan dalam lingkungan, lihat Library Python.

Fitur dan peningkatan Runtime 4.0

Dibandingkan dengan runtime 3.0, runtime 4.0 menyertakan perubahan berikut pada default dan fitur:

  • Paket premium secara default: Workload batch berjalan di paket premium kecuali jika Anda menetapkan properti dataproc.tier ke standard. Sesi interaktif selalu berjalan di paket premium. Workload paket premium dikenai biaya sesuai tarif Unit Komputasi Data (DCU) premium.

    Runtime 4.0 juga membuat workload lebih mudah dikonfigurasi:

    • Default yang lebih baik: Di paket premium, driver dan eksekutor menggunakan resource komputasi dan disk premium secara default, sehingga Anda tidak perlu menetapkan properti untuk menggunakannya. Untuk ukuran disk default, lihat Ukuran disk default. Di paket premium, ukuran disk tidak perlu berupa kelipatan 375 GiB.
    • Properti yang lebih sedikit: Properti dataproc.tier menentukan resource komputasi dan disk driver serta eksekutor, sehingga Anda tidak perlu mengonfigurasinya secara terpisah. Properti spark.dataproc.driver.compute.tier, spark.dataproc.executor.compute.tier, spark.dataproc.driver.disk.tier, dan spark.dataproc.executor.disk.tier dihapus.
  • Lightning Engine secara default: Workload batch paket Premium menggunakan Lightning Engine secara default. Untuk memilih tidak ikut, tetapkan spark.dataproc.engine=default. Sesi interaktif tidak menggunakan Lightning Engine secara default. Untuk mengaktifkannya pada sesi interaktif, tetapkan spark.dataproc.engine=lightningEngine. Untuk juga menggunakan Native Query Execution, tetapkan spark.dataproc.lightningEngine.runtime=native.

  • Bentuk memori highmem secara default: Runtime 4.0 memperkenalkan bentuk memori, yang menentukan jumlah memori yang didapatkan driver dan eksekutor. Driver dan eksekutor menggunakan bentuk memori highmem secara default, yang menyediakan memori sebesar 7.75 GiB per vCPU dan memberi mereka lebih banyak memori daripada setelan memori default runtime 3.0. Bentuk memori juga membuat memori lebih mudah dikonfigurasi:

    • Properti bentuk memori baru: Untuk memilih bentuk memori driver atau eksekutor, tetapkan properti spark.dataproc.driver.memory.shape atau spark.dataproc.executor.memory.shape ke highmem atau standard. Bentuk memori standard menyediakan memori sebesar 3.75 GiB per vCPU.
    • Pengukuran memori otomatis: Managed Service untuk Apache Spark mengukur memori Spark dan overhead memori driver dan eksekutor dari bentuk memorinya, sehingga Anda tidak perlu menetapkan spark.driver.memory, spark.executor.memory, spark.driver.memoryOverhead, atau spark.executor.memoryOverhead.
  • Startup lebih cepat: Di paket premium, workload yang menggunakan konfigurasi driver default memenuhi syarat untuk menjalankan driver di VM startup cepat, yang mengurangi waktu startup workload.

  • Katalog runtime Lakehouse sebagai katalog default: Workload batch dan sesi interaktif menggunakan katalog runtime Lakehouse sebagai katalog Spark default, sehingga Anda dapat membuat dan mengkueri tabel Apache Iceberg tanpa mengonfigurasi katalog. Katalog Spark bigquery yang telah dikonfigurasi sebelumnya masih tersedia. Untuk menggunakan katalog lain, lihat Memilih tidak menggunakan katalog awal.

  • Kuota DCU: Workload menggunakan kuota unit komputasi data (DataComputeUnitsPerProjectPerRegion) Managed Service untuk Apache Spark, bukan kuota CPU dan disk Compute Engine project Anda. Workload yang menggunakan GPU akan terus menggunakan kuota Compute Engine. Untuk mengetahui informasi selengkapnya, lihat Kuota serverless Managed Service untuk Apache Spark.

Runtime 4.0 juga mencakup fitur runtime 3.0, seperti workload regional dan multi-zona, kredensial pengguna akhir secara default, dan pembersihan resource yang cepat.

Bentuk memori

Dalam runtime 4.0, bentuk memori driver dan eksekutor menentukan jumlah memori yang dialokasikan. Bentuk memori menyediakan jumlah memori tetap untuk setiap vCPU. Managed Service untuk Apache Spark membagi memori tersebut antara heap Spark (spark.driver.memory atau spark.executor.memory) dan overhead memori (spark.driver.memoryOverhead atau spark.executor.memoryOverhead).

Runtime 4.0 memperkenalkan properti berikut untuk memilih bentuk memori driver dan eksekutor:

Properti Deskripsi Default
spark.dataproc.driver.memory.shape Bentuk memori driver, baik highmem maupun standard. highmem
spark.dataproc.executor.memory.shape Bentuk memori eksekutor, baik highmem maupun standard. highmem

Tabel berikut mencantumkan memori yang disediakan oleh setiap bentuk memori, dan setelan memori Spark default driver atau eksekutor yang memiliki 4 vCPU, yang merupakan nilai default spark.driver.cores dan spark.executor.cores:

Bentuk memori Memori per vCPU Workload batch PySpark: memori dan overhead memori Workload batch dan sesi interaktif lainnya: memori dan overhead memori
highmem 7,75 GiB 21154m dan 8462m 26924m dan 2692m
standard 3,75 GiB 9681m dan 3872m 12321m dan 1232m

Catatan:

  • Memori bentuk memori diskalakan dengan jumlah vCPU. Misalnya, eksekutor highmem yang memiliki 8 vCPU akan mendapatkan memori sebesar 62 GiB.

  • Sebagian memori dari bentuk memori dicadangkan untuk sistem dan tidak tersedia untuk Spark. Workload yang menggunakan image container kustom memesan memori tambahan, sehingga setelan memori Spark default-nya sedikit lebih rendah.

  • Workload batch PySpark menggunakan faktor overhead memori sebesar 0.4. Workload batch dan sesi interaktif lainnya menggunakan faktor overhead memori sebesar 0.1. Untuk mengubah cara memori bentuk memori dibagi antara heap dan overhead memori, tetapkan spark.driver.memoryOverheadFactor atau spark.executor.memoryOverheadFactor.

  • Bentuk memori menentukan memori yang disediakan untuk driver dan eksekutor, yang memengaruhi penggunaan DCU. Untuk mengetahui informasi selengkapnya, lihat harga Managed Service untuk Apache Spark.

Cara bentuk kenangan diterapkan

Managed Service untuk Apache Spark menerapkan bentuk memori ke driver dan eksekutor sebagai berikut:

  • Driver atau eksekutor menggunakan bentuk memori highmem, kecuali jika Anda menetapkan salah satu hal berikut untuknya:

    • Bentuk memori: spark.dataproc.driver.memory.shape atau spark.dataproc.executor.memory.shape.
    • Memori: spark.driver.memory atau spark.executor.memory.
    • Overhead memori: spark.driver.memoryOverhead atau spark.executor.memoryOverhead.
    • Akselerator GPU. Driver dan eksekutor yang menggunakan GPU mendapatkan jumlah memori tetap.
  • Jika Anda menetapkan memori atau overhead memori driver atau eksekutor dan tidak menetapkan bentuk memorinya, driver atau eksekutor tidak akan menggunakan bentuk memori. Sebagai gantinya, Managed Service untuk Apache Spark mengukur driver atau eksekutor dari memori yang Anda tentukan, seperti pada runtime sebelumnya.

  • Menetapkan faktor overhead memori driver atau eksekutor tidak akan mengubah bentuk memorinya.

  • Managed Service untuk Apache Spark menolak workload batch atau sesi interaktif dalam kasus berikut:

    • Properti ini menetapkan bentuk memori driver atau eksekutor, dan juga menetapkan memori atau overhead memori driver atau eksekutor yang sama. Untuk mengubah cara pembagian memori bentuk memori, tetapkan faktor overhead memori.
    • Metode ini menetapkan bentuk memori ke nilai selain highmem atau standard.

Driver startup cepat

Di paket premium, Managed Service untuk Apache Spark dapat menjalankan driver di VM startup cepat untuk mengurangi waktu startup workload. Driver memenuhi syarat untuk dijalankan di VM startup cepat jika semua kondisi berikut terpenuhi:

  • Workload berjalan di paket premium, yang merupakan default di runtime 4.0.
  • Driver menggunakan bentuk memori.
  • Driver memiliki 4 vCPU (spark.driver.cores=4), yang merupakan default.
  • Ukuran disk driver (spark.dataproc.driver.disk.size) adalah 450g atau kurang. Defaultnya adalah 400g.
  • Workload tidak menetapkan spark.driver.memory, spark.driver.memoryOverhead, spark.driver.memoryOverheadFactor, atau akselerator GPU untuk driver.

Driver yang berjalan di VM startup cepat mendapatkan memori yang sama dengan driver lain yang menggunakan bentuk memori yang sama.

Ukuran disk default

Dalam runtime 4.0, paket workload menentukan ukuran disk default driver dan eksekutornya:

Tingkat Ukuran disk default setiap driver dan executor
Premium (default) 100 GiB per vCPU, dan setidaknya `375` GiB. Misalnya, 400 GiB untuk 4 vCPU.
Standar `75` GiB per vCPU, dan hingga 1.000 GiB. Misalnya, `300` GiB untuk 4 vCPU.

Untuk mengubah ukuran disk, tetapkan properti alokasi resource spark.dataproc.driver.disk.size atau spark.dataproc.executor.disk.size. Di paket premium, ukuran disk tidak harus kelipatan 375 GiB.

Fungsi yang tidak didukung dan perubahan perilaku

Fungsi berikut tidak didukung atau berperilaku berbeda di runtime 4.0:

  • Properti tingkat komputasi dan disk: Properti spark.dataproc.driver.compute.tier, spark.dataproc.executor.compute.tier, spark.dataproc.driver.disk.tier, dan spark.dataproc.executor.disk.tier tidak didukung. Sebagai gantinya, gunakan properti dataproc.tier.

  • Properti memori off-heap: Properti spark.memory.offHeap.enabled dan spark.memory.offHeap.size tidak didukung.

  • Subnetwork: Anda harus menentukan subnetwork saat mengirimkan workload batch atau membuat sesi interaktif. Subnetwork dual-stack (IPv4 dan IPv6) dan khusus IPv6 tidak didukung. Untuk mengetahui informasi selengkapnya, lihat Konfigurasi jaringan.

  • Konektor BigQuery Spark kustom: Jika Anda menambahkan file JAR konektor BigQuery Spark ke workload batch, tetapkan juga properti dataproc.artifacts.remove=spark-bigquery-connector untuk menghapus konektor yang telah diinstal sebelumnya. Jika tidak, workload batch akan gagal.

  • Bucket staging: Runtime 4.0 tidak menggunakan bucket staging Cloud Storage.

  • Persistent History Server (PHS): PHS tidak didukung. Sebagai gantinya, gunakan Spark UI.

  • SparkR: Batch SparkR tidak didukung. Sebagai gantinya, gunakan sparklyr.

  • Sesi Jupyter: Sesi Jupyter tidak didukung. Sebagai gantinya, gunakan sesi Spark Connect, standar industri untuk pengembangan Spark interaktif.

Library Python

Tabel berikut mencantumkan paket Python yang disertakan dalam runtime 4.0. Jika tabel tidak mencantumkan versi untuk paket, runtime akan menyertakan versi terbaru paket yang kompatibel dengan paket lain saat runtime di-build. Versi ini dapat berubah dalam rilis runtime subminor.

library python serverless-spark-4.0-debian-13
Nama Paket Versi
mempercepat
bigframes
ca-certificates
certifi
cookiecutter
cuda 12,9
cudnn
cython
dask
datasets
db-dtypes
deepspeed
delta-spark 4.4.0
evaluate
fastavro
fastparquet
gcsfs
google-auth-oauthlib
google-cloud-aiplatform
google-cloud-alloydb-connector[pg8000]
google-cloud-bigquery
google-cloud-bigtable
google-cloud-container
google-cloud-datacatalog
google-cloud-dataproc
google-cloud-datastore
google-cloud-dlp
google-cloud-language
google-cloud-logging
google-cloud-monitoring
google-cloud-pubsub
google-cloud-redis
google-cloud-secret-manager
google-cloud-spanner
google-cloud-spark-connect[interactive]
google-cloud-speech
google-cloud-storage
google-cloud-storage-control
google-cloud-texttospeech
google-cloud-translate
google-cloud-vision
holoviews
ipyparallel
keyrings.google-artifactregistry-auth
langchain
lightgbm
mkl
mlflow
nccl
nltk
numba
numba-cuda
numpy
onnx
opencv-python
optuna
pandas
papermill
polars
psycopg2-binary
pyarrow
pydot
pyiceberg
pymongo
pynvml
python 3.13
python-dateutil
pytorch-gpu
permintaan
rtree
scikit-image
scikit-learn
scipy
seaborn
sentence-transformers
sentencepiece
shap
spacy
sqlalchemy
statsforecast
sympy
tabel
torcheval
torchvision
transformers
virtualenv
wordcloud
xgboost 3.4