Runtime Azure Synapse

Kumpulan Apache Spark di Azure Synapse menggunakan runtime untuk menyatukan versi komponen penting seperti pengoptimalan, paket, dan konektor Azure Synapse dengan versi Apache Spark tertentu. Setiap runtime ditingkatkan secara berkala untuk menyertakan peningkatan, fitur, dan patch baru. Saat Anda membuat kumpulan Apache Spark tanpa server, pilih versi Apache Spark yang sesuai. Berdasarkan hal ini, kumpulan telah diinstal sebelumnya dengan komponen dan paket runtime terkait.

Runtime memiliki keuntungan sebagai berikut:

  • Waktu mulai sesi yang lebih cepat
  • Kompatibilitas teruji dengan versi Apache Spark tertentu
  • Akses ke konektor populer yang kompatibel dan paket sumber terbuka

Rilis runtime Azure Synapse yang didukung

Peringatan

Akhir Pemberitahuan Dukungan untuk Azure Synapse Runtime untuk Apache Spark 2.4 dan Apache Spark 3.1.

  • Mulai 29 September 2023, Azure Synapse akan menghentikan dukungan resmi untuk Runtime Spark 2.4.
  • Mulai 26 Januari 2024, Azure Synapse akan menghentikan dukungan resmi untuk Runtime Spark 3.1.
  • Setelah tanggal ini, kami tidak akan membahas tiket dukungan apa pun yang terkait dengan Spark 2.4 atau 3.1. Tidak akan ada alur rilis untuk perbaikan bug atau keamanan untuk Spark 2.4 dan 3.1. Memanfaatkan Spark 2.4 atau 3.1 pasca tanggal cutoff dukungan dilakukan dengan risiko seseorang sendiri. Kami sangat mencegah penggunaannya yang berkelanjutan karena potensi masalah keamanan dan fungsionalitas.

Tip

Kami sangat menyarankan untuk meningkatkan beban kerja secara proaktif ke versi GA yang lebih baru dari runtime (misalnya, Azure Synapse Runtime untuk Apache Spark 3.4 (GA)). Lihat panduan migrasi Apache Spark.

Tabel berikut mencantumkan nama runtime, versi Apache Spark, dan tanggal rilis untuk rilis Azure Synapse Runtime yang didukung.

Nama runtime Tanggal rilis Tahap rilis Tanggal pengumuman Akhir Dukungan Tanggal berlaku Akhir Dukungan
Azure Synapse Runtime untuk Apache Spark 3.4 21 Nov 2023 GA (per 8 Apr 2024)
Azure Synapse Runtime untuk Apache Spark 3.3 17 Nov 2022 GA (per 23 Feb 2023) Q2/Q3 2024 Q1 2025
Azure Synapse Runtime untuk Apache Spark 3.2 8 Juli 2022 Akhir Dukungan Diumumkan 8 Juli 2023 8 Juli 2024
Azure Synapse Runtime untuk Apache Spark 3.1 26 Mei 2021 Usang 26 Januari 2023 26 Januari 2024
Azure Synapse Runtime untuk Apache Spark 2.4 15 Desember 2020 Usang 29 Juli, 2022 29 September 2023

Tahapan rilis runtime

Untuk runtime lengkap untuk siklus hidup dan kebijakan dukungan Apache Spark, lihat runtime Synapse untuk siklus hidup dan dukungan Apache Spark.

Patching runtime

Runtime Azure Synapse untuk patch Apache Spark diluncurkan setiap bulan yang berisi bug, fitur, dan perbaikan keamanan ke mesin inti Apache Spark, lingkungan bahasa, konektor, dan pustaka.

Catatan

  • Pembaruan pemeliharaan akan secara otomatis diterapkan ke sesi baru untuk kumpulan Apache Spark tanpa server yang ditentukan.
  • Anda harus menguji dan memvalidasi apakah aplikasi berjalan dengan benar saat menggunakan versi runtime baru.

Penting

Patch keamanan Log4j 1.2.x

Pustaka Log4j sumber terbuka versi 1.2.x memiliki beberapa CVE yang diketahui (Kerentanan dan Paparan Umum), seperti yang dijelaskan di sini.

Pada semua runtime Synapse Spark Pool, kami telah melakukan patch pada JAR Log4j 1.2.17 untuk mengurangi CVE berikut: CVE-2019-1751, CVE-2020-9488, CVE-2021-4104, CVE-2022-23302, CVE-2022- 2330, CVE-2022-23307

Patch yang diterapkan bekerja dengan menghapus file-file berikut yang diperlukan untuk memanggil kerentanan:

  • org/apache/log4j/net/SocketServer.class
  • org/apache/log4j/net/SMTPAppender.class
  • org/apache/log4j/net/JMSAppender.class
  • org/apache/log4j/net/JMSSink.class
  • org/apache/log4j/jdbc/JDBCAppender.class
  • org/apache/log4j/chainsaw/*

Meskipun kelas di atas tidak digunakan dalam konfigurasi Log4j default di Synapse, ada kemungkinan bahwa beberapa aplikasi pengguna masih dapat bergantung padanya. Jika aplikasi Anda perlu menggunakan kelas ini, gunakan Manajemen Pustaka untuk menambahkan versi Log4j yang aman ke Spark Pool. Jangan gunakan Log4j versi 1.2.17, karena akan memperkenalkan kembali kerentanan.

Kebijakan patch berbeda berdasarkan tahap siklus hidup runtime:

  • Runtime Tersedia Secara Umum (GA): Tidak menerima peningkatan pada versi utama (yaitu, 3.x -> 4.x). Dan akan meningkatkan versi minor (yaitu, 3.x -> 3.y) selama tidak ada dampak penghentian atau regresi.

  • Runtime pratinjau: Tidak ada peningkatan versi utama kecuali benar-benar diperlukan. Versi minor (3.x -> 3.y) akan ditingkatkan untuk menambahkan fitur terbaru ke runtime.

  • Runtime Dukungan Jangka Panjang (LTS) hanya di-patch dengan perbaikan keamanan.

  • Akhir Dukungan yang diumumkan runtime tidak akan memiliki bug dan perbaikan fitur. Perbaikan keamanan didukung berdasarkan penilaian risiko.

Migrasi antara versi Apache Spark - dukungan

Panduan ini menyediakan pendekatan terstruktur bagi pengguna yang ingin meningkatkan Azure Synapse Runtime untuk beban kerja Apache Spark dari versi 2.4, 3.1, 3.2, atau 3.3 ke versi GA terbaru, seperti 3.4. Meningkatkan ke versi terbaru memungkinkan pengguna untuk mendapatkan manfaat dari peningkatan performa, fitur baru, dan langkah-langkah keamanan yang ditingkatkan. Penting untuk dicatat bahwa transisi ke versi yang lebih tinggi mungkin memerlukan penyesuaian pada kode Spark yang ada karena ketidaksesuaian atau fitur yang tidak digunakan lagi.

Langkah 1: Mengevaluasi dan merencanakan

  • Menilai Kompatibilitas: Mulailah dengan meninjau panduan migrasi Apache Spark untuk mengidentifikasi potensi ketidakcocokan, fitur yang tidak digunakan lagi, dan API baru antara versi Spark Anda saat ini (2.4, 3.1, 3.2, atau 3.3) dan versi target (misalnya, 3.4).
  • Analisis Codebase: Periksa kode Spark Anda dengan cermat untuk mengidentifikasi penggunaan API yang tidak digunakan lagi atau dimodifikasi. Perhatikan secara khusus kueri SQL dan User Defined Functions (UDF), yang mungkin terpengaruh oleh peningkatan.

Langkah 2: Buat kumpulan Spark baru untuk pengujian

  • Buat Kumpulan Baru: Di Azure Synapse, buka bagian Kumpulan Spark dan siapkan kumpulan Spark baru. Pilih versi Spark target (misalnya, 3.4) dan konfigurasikan sesuai dengan persyaratan performa Anda.
  • Konfigurasikan Konfigurasi Kumpulan Spark: Pastikan semua pustaka dan dependensi di kumpulan Spark baru Anda diperbarui atau diganti agar kompatibel dengan Spark 3.4.

Langkah 3: Memigrasikan dan menguji kode Anda

  • Kode Migrasi: Perbarui kode Anda agar sesuai dengan API baru atau yang direvisi di Apache Spark 3.4. Ini melibatkan mengatasi fungsi yang tidak digunakan lagi dan mengadopsi fitur baru sebagaimana dirinci dalam dokumentasi Resmi Apache Spark.
  • Uji di Lingkungan Pengembangan: Uji kode yang diperbarui dalam lingkungan pengembangan di Azure Synapse, bukan secara lokal. Langkah ini penting untuk mengidentifikasi dan memperbaiki masalah apa pun sebelum pindah ke produksi.
  • Sebarkan dan Pantau: Setelah pengujian dan validasi menyeluruh di lingkungan pengembangan, sebarkan aplikasi Anda ke kumpulan Spark 3.4 baru. Sangat penting untuk memantau aplikasi untuk setiap perilaku tak terduga. Gunakan alat pemantauan yang tersedia di Azure Synapse untuk melacak performa aplikasi Spark Anda.

Pertanyaan: Langkah apa yang harus diambil dalam migrasi dari 2.4 ke 3.X?

Jawaban: Lihat panduan migrasi Apache Spark.

Pertanyaan: Saya mendapatkan kesalahan ketika saya mencoba meningkatkan runtime kumpulan Spark menggunakan cmdlet PowerShell ketika mereka telah melampirkan pustaka.

Jawaban: Jangan gunakan cmdlet PowerShell jika Anda memiliki pustaka kustom yang terinstal di ruang kerja Synapse Anda. Sebagai gantinya, ikuti langkah-langkah berikut:

  1. Buat ulang Spark Pool 3.3 dari bawah ke atas.
  2. Turunkan kumpulan Spark saat ini 3.3 ke 3.1, hapus paket apa pun yang terpasang, lalu tingkatkan lagi ke 3.3.