Dokumen ini menjelaskan kapan dan cara mengaktifkan Eksekusi Kueri Native untuk mempercepat workload batch dan sesi interaktif Serverless untuk Apache Spark.
Persyaratan Eksekusi Kueri Native
Eksekusi Kueri Native Serverless untuk Apache Spark hanya tersedia dengan workload batch dan sesi interaktif menggunakan 1.2.26+
, 2.2.26+
, atau versi runtime Spark yang lebih baru yang berjalan di tingkat harga premium Serverless untuk Apache Spark.
Harga tingkat premium dikenakan biaya yang lebih tinggi daripada harga tingkat standar, tetapi tidak ada biaya tambahan untuk Eksekusi Kueri Native.
Untuk mengetahui informasi harga, lihat Harga Serverless untuk Apache Spark.
Properti Eksekusi Kueri Native
Bagian ini mencantumkan properti alokasi resource Spark yang wajib dan opsional yang dapat Anda gunakan untuk mengaktifkan dan menyesuaikan Eksekusi Kueri Native untuk beban kerja batch atau sesi interaktif.
Setelan properti yang diperlukan
spark.dataproc.runtimeEngine=native
: Mesin runtime workload harus disetel kenative
untuk menggantikan mesin runtimespark
default.spark.dataproc.spark.driver.compute.tier=premium
danspark.dataproc.executor.compute.tier=premium
: Properti tingkat harga ini harus ditetapkan ke tingkat harga premium.
Properti alokasi resource opsional
spark.dataproc.driver.disk.tier
,spark.dataproc.driver.disk.size
,spark.dataproc.executor.disk.tier
, danspark.dataproc.executor.disk.size
: Gunakan properti ini untuk menetapkan dan mengonfigurasi tingkat dan ukuran disk premium untuk proses driver dan eksekutor Spark.Tingkatan disk premium menggunakan shuffle berbasis kolom, bukan berbasis baris, untuk memberikan performa yang lebih baik. Untuk throughput I/O pengacakan yang lebih baik, gunakan tingkat disk premium driver dan executor dengan ukuran disk yang cukup besar untuk mengakomodasi file pengacakan.
spark.driver.memory
,spark.driver.memoryOverhead
,spark.executor.memory
,spark.executor.memoryOverhead
, danspark.memory.offHeap.size
: Gunakan properti ini untuk menyesuaikan memori yang disediakan untuk proses driver dan eksekutor Spark.Anda dapat mengonfigurasi memori dengan salah satu cara berikut:
Opsi 1: Konfigurasi memori di luar heap saja (
spark.memory.offHeap.size
) dengan nilai yang ditentukan. Eksekusi Kueri Native akan menggunakan nilai yang ditentukan sebagai memori di luar heap, dan mengalokasikan1/7th
tambahan dari nilai memori di luar heap sebagai memori di dalam heap (spark.executor.memory
).Opsi 2: Konfigurasi memori on-heap (
spark.executor.memory
) dan memori off-heap (spark.memory.offHeap.size
). Jumlah yang Anda alokasikan ke memori off-heap harus lebih besar daripada jumlah yang Anda alokasikan ke memori on-heap.
Jika Anda tidak mengonfigurasi memori di luar heap (
spark.memory.offHeap.size
) dan memori di heap (spark.executor.memory
), mesin Native Query Execution akan membagi jumlah memori4g
default dalam rasio6:1
antara memori di luar heap dan memori di heap.Rekomendasi: Alokasikan memori off-heap ke on-heap dengan rasio
6:1
.Contoh:
Setelan memori tanpa Eksekusi Kueri Native Setelan memori yang direkomendasikan dengan Eksekusi Kueri Native spark.executor.memory
spark.memory.offHeap.size
spark.executor.memory
7g 6g 1g 14g 12g 2g 28g 24g 4g 56g 48g 8g
Menjalankan alat kualifikasi
Untuk mengidentifikasi workload batch yang dapat mencapai runtime yang lebih cepat dengan Eksekusi Kueri Native (NQE), Anda dapat menggunakan alat kualifikasi. Alat ini menganalisis log peristiwa Spark untuk memperkirakan potensi penghematan runtime dan mengidentifikasi operasi yang tidak didukung oleh mesin NQE.
Google Cloud menyediakan dua metode untuk menjalankan analisis kualifikasi: tugas kualifikasi dan skrip kualifikasi. Pendekatan yang direkomendasikan untuk sebagian besar pengguna adalah tugas kualifikasi, yang mengotomatiskan penemuan dan analisis workload batch. Skrip kualifikasi alternatif tersedia untuk kasus penggunaan spesifik dalam menganalisis file log peristiwa yang diketahui. Pilih metode yang paling sesuai dengan kasus penggunaan Anda:
Tugas Kualifikasi (Direkomendasikan): Ini adalah metode utama dan yang direkomendasikan. Ini adalah tugas PySpark yang secara otomatis menemukan dan menganalisis beban kerja batch terbaru di satu atau beberapa Google Cloud project dan region. Gunakan metode ini jika Anda ingin melakukan analisis luas tanpa perlu menemukan file log peristiwa satu per satu secara manual. Pendekatan ini ideal untuk evaluasi kesesuaian NQE dalam skala besar.
Skrip Kualifikasi (Alternatif): Ini adalah metode alternatif untuk kasus penggunaan lanjutan atau spesifik. Skrip ini adalah skrip shell yang menganalisis satu file log peristiwa Spark atau semua log peristiwa dalam direktori Cloud Storage tertentu. Gunakan metode ini jika Anda memiliki jalur Cloud Storage ke log peristiwa yang ingin dianalisis.
Tugas kualifikasi
Tugas kualifikasi menyederhanakan analisis berskala besar dengan memindai secara terprogram workload batch Serverless untuk Apache Spark dan mengirimkan tugas analisis terdistribusi. Alat ini mengevaluasi tugas di seluruh organisasi Anda, sehingga Anda tidak perlu lagi menemukan dan menentukan jalur log peristiwa secara manual.
Memberikan peran IAM
Agar tugas kualifikasi dapat mengakses metadata beban batch dan membaca log peristiwa Spark di Cloud Logging, akun layanan yang menjalankan beban kerja harus diberi peran IAM berikut di semua project yang akan dianalisis:
Mengirim tugas kualifikasi
Anda mengirimkan tugas kualifikasi menggunakan alat gcloud CLI. Tugas ini mencakup skrip PySpark dan file JAR yang dihosting di bucket Cloud Storage publik.
Anda dapat menjalankan tugas di salah satu lingkungan eksekusi berikut:
Sebagai workload batch Serverless untuk Apache Spark. Ini adalah eksekusi tugas sederhana dan mandiri.
Sebagai tugas yang berjalan di cluster Dataproc di Compute Engine. Pendekatan ini dapat berguna untuk mengintegrasikan tugas ke dalam alur kerja.
Argumen tugas
Argumen | Deskripsi | Wajib? | Nilai Default |
---|---|---|---|
--project-ids |
Satu Project ID atau daftar ID project Google Cloud yang dipisahkan koma untuk dipindai beban kerja batch. | Tidak | Project tempat tugas kualifikasi berjalan. |
--regions |
Satu region atau daftar region yang dipisahkan koma untuk dipindai dalam project yang ditentukan. | Tidak | Semua region dalam project yang ditentukan. |
--start-time |
Tanggal mulai untuk memfilter batch. Hanya batch yang dibuat pada atau setelah tanggal ini (format: YYYY-MM-DD) yang akan dianalisis. | Tidak | Tidak ada filter tanggal mulai yang diterapkan. |
--end-time |
Tanggal akhir untuk memfilter batch. Hanya batch yang dibuat pada atau sebelum tanggal ini (format: YYYY-MM-DD) yang akan dianalisis. | Tidak | Tidak ada filter tanggal akhir yang diterapkan. |
--limit |
Jumlah maksimum batch yang akan dianalisis per wilayah. Batch terbaru dianalisis terlebih dahulu. | Tidak | Semua batch yang cocok dengan kriteria filter lainnya akan dianalisis. |
--output-gcs-path |
Jalur Cloud Storage (misalnya, gs://your-bucket/output/ ) tempat file hasil akan ditulis. |
Ya | Tidak ada. |
--input-file |
Jalur Cloud Storage ke file teks untuk analisis massal. Jika diberikan, argumen ini akan menggantikan semua argumen lain yang menentukan cakupan (--project-ids , --regions , --start-time , --end-time , --limit ). |
Tidak | Tidak ada. |
Contoh pekerjaan kualifikasi
Tugas batch Serverless for Apache Spark untuk melakukan analisis ad-hoc sederhana. Argumen tugas dicantumkan setelah pemisah
--
.gcloud dataproc batches submit pyspark gs://qualification-tool/performance-boost-qualification.py \ --project=PROJECT_ID \ --region=REGION \ --jars=gs://qualification-tool/dataproc-perfboost-qualification-1.2.jar \ -- \ --project-ids=COMMA_SEPARATED_PROJECT_IDS \ --regions=COMMA_SEPARATED_REGIONS \ --limit=MAX_BATCHES \ --output-gcs-path=gs://BUCKET
Tugas batch Serverless for Apache Spark untuk menganalisis hingga 50 batch terbaru yang ditemukan di
sample_project
di regionus-central1
. Hasilnya ditulis ke bucket di Cloud Storage. Argumen tugas dicantumkan setelah pemisah--
.gcloud dataproc batches submit pyspark gs://qualification-tool/performance-boost-qualification.py \ --project=PROJECT_ID \ --region=US-CENTRAL1 \ --jars=gs://qualification-tool/dataproc-perfboost-qualification-1.2.jar \ -- \ --project-ids=PROJECT_ID \ --regions=US-CENTRAL1 \ --limit=50 \ --output-gcs-path=gs://BUCKET/
Tugas Dataproc di Compute Engine yang dikirimkan ke cluster Dataproc untuk analisis massal dalam alur kerja analisis berskala besar, berulang, atau otomatis. Argumen tugas ditempatkan dalam INPUT_FILE yang diupload ke BUCKET di Cloud Storage. Metode ini ideal untuk memindai rentang tanggal atau batas batch yang berbeda di berbagai project dan region dalam satu proses.
gcloud dataproc jobs submit pyspark gs://qualification-tool/performance-boost-qualification.py \ --cluster=CLUSTER_NAME \ --region=REGION \ --jars=gs://qualification-tool/dataproc-perfboost-qualification-1.2.jar \ -- \ --input-file=gs://INPUT_FILE \ --output-gcs-path=gs://BUCKET
Catatan:
INPUT_FILE: Setiap baris dalam file mewakili permintaan analisis yang berbeda dan menggunakan format tanda satu huruf yang diikuti dengan nilainya, seperti,
-p PROJECT-ID -r REGION -s START_DATE -e END_DATE -l LIMITS
.Contoh konten file input:
-p project1 -r us-central1 -s 2024-12-01 -e 2024-12-15 -l 100 -p project2 -r europe-west1 -s 2024-11-15 -l 50
Argumen ini mengarahkan alat untuk menganalisis dua cakupan berikut:
- Hingga 100 batch di project1 di region
us-central1
yang dibuat antara 1 Desember 2025 dan 15 Desember 2025. - Hingga 50 batch di project2 di region
europe-west1
yang dibuat pada atau setelah 15 November 2025.
- Hingga 100 batch di project1 di region
Skrip kualifikasi
Gunakan metode ini jika Anda memiliki jalur Cloud Storage langsung ke log peristiwa Spark tertentu yang ingin Anda analisis. Pendekatan ini mengharuskan Anda mendownload
dan menjalankan skrip shell, run_qualification_tool.sh
, di mesin lokal atau VM Compute Engine yang dikonfigurasi dengan akses ke file log peristiwa di Cloud Storage.
Lakukan langkah-langkah berikut untuk menjalankan skrip terhadap file peristiwa workload batch Serverless untuk Apache Spark.
1.Salin
run_qualification_tool.sh
ke direktori lokal yang berisi file peristiwa Spark untuk dianalisis.
Jalankan skrip kualifikasi untuk menganalisis satu file peristiwa atau sekumpulan file peristiwa yang ada dalam direktori skrip.
./run_qualification_tool.sh -f EVENT_FILE_PATH/EVENT_FILE_NAME \ -o CUSTOM_OUTPUT_DIRECTORY_PATH \ -k SERVICE_ACCOUNT_KEY \ -x MEMORY_ALLOCATEDg \ -t PARALLEL_THREADS_TO_RUN
Tanda dan nilai:
-f
(wajib): Lihat Lokasi file peristiwa Spark untuk menemukan file peristiwa beban kerja Spark.EVENT_FILE_PATH (wajib kecuali jika EVENT_FILE_NAME ditentukan): Jalur file peristiwa yang akan dianalisis. Jika tidak diberikan, jalur file peristiwa diasumsikan sebagai direktori saat ini.
EVENT_FILE_NAME (wajib diisi kecuali jika EVENT_FILE_PATH ditentukan): Nama file peristiwa yang akan dianalisis. Jika tidak diberikan, file peristiwa yang ditemukan secara rekursif di
EVENT_FILE_PATH
akan dianalisis.
-o
(opsional): Jika tidak diberikan, alat akan membuat atau menggunakan direktorioutput
yang ada di direktori saat ini untuk menempatkan file output.- CUSTOM_OUTPUT_DIRECTORY_PATH: Jalur direktori output ke file output.
-k
(opsional):- SERVICE_ACCOUNT_KEY: Kunci akun layanan dalam format JSON jika diperlukan untuk mengakses EVENT_FILE_PATH.
-x
(opsional):- MEMORY_ALLOCATED: Memori dalam gigabyte yang akan dialokasikan ke alat. Secara default, alat ini menggunakan 80% memori kosong yang tersedia di sistem dan semua core mesin yang tersedia.
-t
(opsional):- PARALLEL_THREADS_TO_RUN: Jumlah thread paralel yang akan dieksekusi alat. Secara default, alat ini menjalankan semua core.
Contoh penggunaan perintah:
./run_qualification_tool.sh -f gs://dataproc-temp-us-east1-9779/spark-job-history \ -o perfboost-output -k /keys/event-file-key -x 34g -t 5
Dalam contoh ini, alat kualifikasi menjelajahi direktori
gs://dataproc-temp-us-east1-9779/spark-job-history
, dan menganalisis file peristiwa Spark yang ada dalam direktori ini dan subdirektorinya. Akses ke direktori diberikan/keys/event-file-key
. Alat ini menggunakan34 GB memory
untuk eksekusi, dan menjalankan5
thread paralel.Lokasi file peristiwa Spark
Lakukan salah satu langkah berikut untuk menemukan file peristiwa Spark untuk workload batch Serverless for Apache Spark:
Di Cloud Storage, temukan
spark.eventLog.dir
untuk workload, lalu download.- Jika Anda tidak dapat menemukan
spark.eventLog.dir
, tetapkanspark.eventLog.dir
ke lokasi Cloud Storage, lalu jalankan ulang workload dan downloadspark.eventLog.dir
.
- Jika Anda tidak dapat menemukan
Jika Anda telah mengonfigurasi Spark History Server untuk tugas batch:
- Buka Spark History Server, lalu pilih beban kerja.
- Klik Download di kolom Log Peristiwa.
File output alat kualifikasi
Setelah tugas kualifikasi atau analisis skrip selesai, alat kualifikasi akan menempatkan file output berikut di direktori perfboost-output
dalam direktori saat ini:
AppsRecommendedForBoost.tsv
: Daftar aplikasi yang direkomendasikan dan dipisahkan tab untuk digunakan dengan Eksekusi Kueri Native.UnsupportedOperators.tsv
: Daftar aplikasi yang dipisahkan tab yang tidak direkomendasikan untuk digunakan dengan Eksekusi Kueri Native.
File output AppsRecommendedForBoost.tsv
Tabel berikut menunjukkan isi file output AppsRecommendedForBoost.tsv
contoh. Tabel ini berisi satu baris untuk setiap aplikasi yang dianalisis.
Contoh file output AppsRecommendedForBoost.tsv
:
applicationId | applicationName | rddPercentage | unsupportedSqlPercentage | totalTaskTime | supportedTaskTime | supportedSqlPercentage | recommendedForBoost | expectedRuntimeReduction |
---|---|---|---|---|---|---|---|---|
app-2024081/batches/083f6196248043938-000 | projects/example.com:dev/locations/us-central1 6b4d6cae140f883c0 11c8e |
0,00% | 0,00% | 548924253 | 548924253 | 100% | TRUE | 30,00% |
app-2024081/batches/60381cab738021457-000 | projects/example.com:dev/locations/us-central1 474113a1462b426bf b3aeb |
0,00% | 0,00% | 514401703 | 514401703 | 100% | TRUE | 30,00% |
Deskripsi kolom:
applicationId
:ApplicationID
aplikasi Spark. Gunakan ini untuk mengidentifikasi beban kerja batch yang sesuai.applicationName
: Nama aplikasi Spark.rddPercentage
: Persentase operasi RDD dalam aplikasi. Operasi RDD tidak didukung oleh Eksekusi Kueri Native.unsupportedSqlPercentage:
Persentase operasi SQL yang tidak didukung oleh Eksekusi Kueri Native.totalTaskTime
: Waktu tugas kumulatif dari semua tugas yang dieksekusi selama aplikasi berjalan.supportedTaskTime
: Total waktu tugas yang didukung oleh Eksekusi Kueri Native.
Kolom berikut memberikan informasi penting untuk membantu Anda menentukan apakah Eksekusi Kueri Native dapat bermanfaat bagi workload batch Anda:
supportedSqlPercentage
: Persentase operasi SQL yang didukung oleh eksekusi kueri asli. Semakin tinggi persentasenya, semakin besar pengurangan runtime yang dapat dicapai dengan menjalankan aplikasi menggunakan Eksekusi Kueri Native.recommendedForBoost
: JikaTRUE
, sebaiknya jalankan aplikasi dengan Eksekusi Kueri Native. JikarecommendedForBoost
adalahFALSE
, jangan gunakan Eksekusi Kueri Native pada beban kerja batch.expectedRuntimeReduction
: Perkiraan pengurangan persentase runtime aplikasi saat Anda menjalankan aplikasi dengan Eksekusi Kueri Native.
File output UnsupportedOperators.tsv
.
File output UnsupportedOperators.tsv
berisi daftar operator yang digunakan dalam
aplikasi beban kerja yang tidak didukung oleh Eksekusi Kueri Native.
Setiap baris dalam file output mencantumkan operator yang tidak didukung.
Deskripsi kolom:
unsupportedOperator
: Nama operator yang tidak didukung oleh Eksekusi Kueri Native.cumulativeCpuMs
: Jumlah milidetik CPU yang digunakan selama eksekusi operator. Nilai ini mencerminkan tingkat kepentingan relatif operator dalam aplikasi.count
: Jumlah penggunaan operator dalam aplikasi.
Menggunakan Eksekusi Kueri Native
Anda dapat menggunakan Eksekusi Kueri Native dengan aplikasi Anda dengan menyetel properti Eksekusi Kueri Native saat Anda membuat batch workload, sesi interaktif, atau template sesi yang menjalankan aplikasi Anda.
Menggunakan Eksekusi Kueri Native dengan beban kerja batch
Anda dapat menggunakan konsol Google Cloud , Google Cloud CLI, atau Dataproc API untuk mengaktifkan Eksekusi Kueri Native pada beban kerja batch.
Konsol
Gunakan konsol Google Cloud untuk mengaktifkan Eksekusi Kueri Native pada workload batch.
Di konsol Google Cloud :
- Buka Batch Dataproc.
- Klik Buat untuk membuka halaman Buat batch.
Pilih dan isi kolom berikut untuk mengonfigurasi batch untuk Eksekusi Kueri Native:
- Container:
- Versi runtime: Pilih
1.2
,2.2
, atau nomor versimajor.minor
yang lebih tinggi. Lihat Versi runtime Serverless for Apache Spark yang didukung.
- Versi runtime: Pilih
- Konfigurasi Tingkatan Eksekutor dan Driver:
- Pilih
Premium
untuk semua tingkat (Driver Compute Tier, Execute Compute Tier).
- Pilih
- Properti: Masukkan pasangan
Key
(nama properti) danValue
untuk menentukan properti Eksekusi Kueri Native:Kunci Nilai spark.dataproc.runtimeEngine
native
- Container:
Isi, pilih, atau konfirmasi setelan beban kerja batch lainnya. Lihat Mengirimkan workload batch Spark.
Klik Submit untuk menjalankan beban kerja batch Spark.
gcloud
Tetapkan flag perintah
gcloud dataproc batches submit spark
gcloud CLI berikut untuk mengonfigurasi beban kerja batch untuk Eksekusi Kueri Native:
gcloud dataproc batches submit spark \ --project=PROJECT_ID \ --region=REGION \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ --properties=spark.dataproc.runtimeEngine=native,spark.dataproc.driver.compute.tier=premium,spark.dataproc.executor.compute.tier=premium \ OTHER_FLAGS_AS_NEEDED
Catatan:
- PROJECT_ID: ID project Google Cloud Anda. Project ID tercantum di bagian Project info di Google Cloud Dasbor konsol.
- REGION: Region Compute Engine yang tersedia untuk menjalankan beban kerja.
- OTHER_FLAGS_AS_NEEDED: Lihat Mengirimkan workload batch Spark.
API
Tetapkan kolom Dataproc API berikut untuk mengonfigurasi beban kerja batch untuk Eksekusi Kueri Native:
RuntimeConfig.properties: Tetapkan properti Eksekusi Kueri Native berikut:
"spark.dataproc.runtimeEngine":"native" "spark.dataproc.driver.compute.tier":"premium" "spark.dataproc.executor.compute".tier:"premium"
Catatan:
- Lihat Mengirimkan workload batch Spark untuk menetapkan kolom API workload batch lainnya.
Kapan harus menggunakan Eksekusi Kueri Native
Gunakan Eksekusi Kueri Native dalam skenario berikut:
API DataFrame Spark, API Dataset Spark, dan kueri Spark SQL yang membaca data dari file Parquet dan ORC. Format file output tidak memengaruhi performa Eksekusi Kueri Native.
Workload yang direkomendasikan oleh alat kualifikasi Eksekusi Kueri Native.
Kapan sebaiknya tidak menggunakan Eksekusi Kueri Native
Input dari jenis data berikut:
- Byte: ORC dan Parquet
- Stempel waktu: ORC
- Struct, Array, Map: Parquet
Batasan
Mengaktifkan Eksekusi Kueri Native dalam skenario berikut dapat menyebabkan pengecualian, ketidakcocokan Spark, atau penggantian beban kerja ke mesin Spark default.
Pengganti
Eksekusi Kueri Native dalam eksekusi berikut dapat menyebabkan penggantian workload ke mesin eksekusi Spark, sehingga menyebabkan regresi atau kegagalan.
ANSI: Jika mode ANSI diaktifkan, eksekusi akan beralih kembali ke Spark.
Mode peka huruf besar/kecil: Eksekusi Kueri Native hanya mendukung mode default Spark yang tidak peka huruf besar/kecil. Jika mode peka huruf besar/kecil diaktifkan, hasil yang salah dapat terjadi.
Pemindaian tabel berpartisi: Eksekusi Kueri Native mendukung pemindaian tabel berpartisi hanya jika jalur berisi informasi partisi, jika tidak, beban kerja akan kembali ke mesin eksekusi Spark.
Perilaku yang tidak kompatibel
Perilaku yang tidak kompatibel atau hasil yang salah dapat terjadi saat menggunakan eksekusi kueri Native dalam kasus berikut:
Fungsi JSON: Eksekusi Kueri Native mendukung string yang diapit tanda kutip ganda, bukan tanda kutip tunggal. Hasil yang salah terjadi dengan tanda petik tunggal. Menggunakan "*" di jalur dengan fungsi
get_json_object
akan menampilkanNULL
.Konfigurasi baca Parquet:
- Eksekusi Kueri Native memperlakukan
spark.files.ignoreCorruptFiles
sebagai ditetapkan ke nilaifalse
default, meskipun ditetapkan ketrue
. - Eksekusi Kueri Native mengabaikan
spark.sql.parquet.datetimeRebaseModeInRead
, dan hanya menampilkan konten file Parquet. Perbedaan antara kalender hybrid lama (Julian Gregorian) dan kalender Gregorian Proleptik tidak dipertimbangkan. Hasil Spark dapat berbeda.
- Eksekusi Kueri Native memperlakukan
NaN
: Tidak didukung. Hasil yang tidak terduga dapat terjadi, misalnya, saat menggunakanNaN
dalam perbandingan numerik.Pembacaan kolom Spark: Error fatal dapat terjadi karena vektor kolom Spark tidak kompatibel dengan Eksekusi Kueri Native.
Tumpahan: Jika partisi pengacakan disetel ke angka yang besar, fitur tumpahan ke disk dapat memicu
OutOfMemoryException
. Jika hal ini terjadi, mengurangi jumlah partisi dapat menghilangkan pengecualian ini.