EMR Serverless Spark berjalan di atas Apache Spark dan mengeksekusi semua tugas melalui kode Java atau Scala pada Java Virtual Machine (JVM) standar. Halaman ini menjelaskan format versi engine, komponen yang disertakan dalam setiap versi engine, serta penyesuaian konfigurasi Spark default yang dapat memengaruhi perilaku pekerjaan.
Format nomor versi
Setiap versi engine mengikuti format esr-Spark , Scala **.
| Segmen |
Makna |
esr-** |
Nomor versi EMR Serverless Spark. Contohnya, esr-2.1. |
Spark ** |
Versi Apache Spark yang menjadi dasar engine tersebut. Misalnya, Spark 3.3.1 berarti engine dibangun di atas Apache Spark 3.3.1. |
Scala ** |
Versi Scala yang didukung oleh versi engine ini. Contohnya, Scala 2.12. |
Gunakan lingkungan runtime Fusion engine untuk mengakses teknologi berbasis vektor dan pustaka native, yang dapat meningkatkan kinerja eksekusi aplikasi SQL. Untuk informasi selengkapnya, lihat Fusion engine.
Versi engine dan dukungan format tabel lake
Tabel-tabel berikut mencantumkan komponen yang disertakan dalam setiap versi engine. Tanda hubung (-) menunjukkan bahwa versi engine tersebut tidak mendukung komponen tersebut.
Seri 5.x
| Engine version |
Spark version |
Scala version |
Delta Lake version |
Apache Hudi version |
Apache Iceberg version |
Apache Paimon version |
JDK version |
| esr-5.3.0 |
4.1.1 |
2.13 |
4.2.0 |
- |
- |
1.4 |
JDK 17 |
| esr-5.2.0 |
4.0.1 |
2.13 |
- |
- |
- |
1.3 |
JDK 17 |
| esr-5.1.0 |
4.0.1 |
2.13 |
- |
- |
- |
1.3 |
JDK 17 |
| esr-5.0.0 |
4.0.1 |
2.13 |
- |
- |
- |
1.3 |
JDK 17 |
Seri 4.x
| Engine version |
Spark version |
Scala version |
Delta Lake version |
Hudi version |
Iceberg version |
Paimon version |
JDK version |
| esr-4.9.1, esr-4.9.0 |
3.5.2 |
2.12 |
3.3.2 |
0.15 |
1.10.1 |
1.4 |
JDK 17 |
| esr-4.8.0 |
3.5.2 |
2.12 |
3.3.2 |
0.15 |
1.9.2 |
1.3 |
JDK 17 |
| esr-4.7.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.9.2 |
1.3 |
JDK 17 |
| esr-4.6.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.9.2 |
1.3 |
JDK 17 |
| esr-4.5.1, esr-4.5.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.9.2 |
1.2 |
JDK 17 |
| esr-4.4.1, esr-4.4.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.5.0 |
1.2 |
JDK 8 |
| esr-4.3.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.5.0 |
1.1 |
JDK 8 |
| esr-4.2.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.5.0 |
1.0 |
JDK 8 |
| esr-4.1.1, esr-4.1.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.5.0 |
1.0 |
JDK 8 |
| esr-4.0.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.5.0 |
1.0 |
JDK 8 |
Seri 3.x
| Engine version |
Spark version |
Scala version |
Delta Lake version |
Hudi version |
Iceberg version |
Paimon version |
JDK version |
| esr-3.8.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1.4 |
JDK 8 |
| esr-3.7.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1.3 |
JDK 8 |
| esr-3.6.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1.3 |
JDK 8 |
| esr-3.5.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1.3 |
JDK 8 |
| esr-3.4.1, esr-3.4.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1.2 |
JDK 8 |
| esr-3.3.1, esr-3.3.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1.1 |
JDK 8 |
| esr-3.2.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1.0 |
JDK 8 |
| esr-3.1.1, esr-3.1.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1.0 |
JDK 8 |
| esr-3.0.1, esr-3.0.0 |
3.4.3 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1.0 |
JDK 8 |
Seri 2.x
| Engine version |
Spark version |
Scala version |
Delta Lake version |
Hudi version |
Iceberg version |
Paimon version |
JDK version |
| esr-2.9.0 |
3.3.1 |
2.12 |
2.2.0 |
0.15 |
1.5.0 |
1.3 |
JDK 8 |
| esr-2.8.1, esr-2.8.0 |
3.3.1 |
2.12 |
2.2.0 |
0.15 |
1.5.0 |
1.2 |
JDK 8 |
| esr-2.7.1, esr-2.7.0 |
3.3.1 |
2.12 |
2.2.0 |
0.15 |
1.1.0 |
1.1 |
JDK 8 |
| esr-2.6.0 |
3.3.1 |
2.12 |
2.2.0 |
0.14 |
1.1.0 |
1.0 |
JDK 8 |
| esr-2.5.1, esr-2.5.0 |
3.3.1 |
2.12 |
2.2.0 |
0.14 |
1.1.0 |
1.0 |
JDK 8 |
| esr-2.4.1, esr-2.4.0 |
3.3.1 |
2.12 |
2.2.0 |
0.14 |
1.1.0 |
1.0 |
JDK 8 |
| esr-2.2.3, esr-2.2.2, esr-2.2 |
3.3.1 |
2.12 |
2.2.0 |
0.14 |
1.1.0 |
0.9 |
JDK 8 |
| esr-2.1 |
3.3.1 |
2.12 |
2.2.0 |
0.14 |
1.1.0 |
0.9 |
JDK 8 |
Penyesuaian parameter default
Untuk meningkatkan kinerja dan stabilitas, EMR Serverless Spark mengganti beberapa konfigurasi default Spark. Penyesuaian ini berlaku untuk semua versi engine (esr-2.x hingga esr-5.x) dan dapat menyebabkan perilaku pekerjaan berbeda dari Spark open-source. Sebelum menjalankan pekerjaan, evaluasi apakah perubahan ini memengaruhi logika bisnis Anda.
| Parameter |
Default EMR Serverless Spark |
Default Spark open-source |
Dampak potensial |
spark.sql.sources.partitionOverwriteMode |
DYNAMIC |
STATIC |
Dengan DYNAMIC, hanya partisi yang termasuk dalam data keluaran yang ditimpa. Dengan STATIC, semua partisi yang ada di path target ditimpa, bahkan jika tidak berisi data baru. Pekerjaan yang bergantung pada penggantian penuh partisi harus mempertimbangkan perbedaan ini. |
spark.sql.mapKeyDedupPolicy |
LAST_WIN |
EXCEPTION |
Dengan LAST_WIN, kunci map duplikat diselesaikan secara diam-diam dengan menyimpan nilai terakhir. Dengan EXCEPTION, kunci map duplikat akan memunculkan error. Pekerjaan yang sebelumnya mengandalkan perilaku melempar error untuk validasi data tidak akan gagal seperti yang diharapkan. |