Apache Spark di Azure Pembelajaran Mesin

Integrasi Azure Pembelajaran Mesin dengan Azure Synapse Analytics menyediakan akses mudah ke sumber daya komputasi terdistribusi melalui kerangka kerja Apache Spark. Integrasi ini menawarkan pengalaman komputasi Apache Spark ini:

  • Komputasi Spark Tanpa Server
  • Kumpulan Synapse Spark Terlampir

Komputasi Spark Tanpa Server

Dengan kerangka kerja Apache Spark, Komputasi Spark tanpa server Azure Pembelajaran Mesin adalah cara termudah untuk menyelesaikan tugas komputasi terdistribusi di lingkungan Azure Pembelajaran Mesin. Azure Pembelajaran Mesin menawarkan kluster komputasi Apache Spark yang dikelola sepenuhnya, tanpa server, sesuai permintaan. Penggunanya dapat menghindari kebutuhan untuk membuat ruang kerja Azure Synapse dan kumpulan Synapse Spark.

Pengguna dapat menentukan sumber daya, termasuk jenis instans dan versi runtime Apache Spark. Mereka kemudian dapat menggunakan sumber daya tersebut untuk mengakses komputasi Spark tanpa server, di buku catatan Azure Pembelajaran Mesin, untuk:

Poin yang perlu dipertimbangkan

Komputasi Spark tanpa server berfungsi dengan baik untuk sebagian besar skenario pengguna yang memerlukan akses cepat ke sumber daya komputasi terdistribusi melalui Apache Spark. Namun, untuk membuat keputusan berdasarkan informasi, pengguna harus mempertimbangkan kelebihan dan kekurangan dari pendekatan ini.

Keuntungan:

  • Tidak ada dependensi pada pembuatan sumber daya Azure lainnya untuk Apache Spark (infrastruktur Azure Synapse beroperasi di bawah tenda).
  • Tidak ada izin langganan yang diperlukan untuk membuat sumber daya terkait Azure Synapse.
  • Tidak perlu kuota kumpulan SQL.

Kekurangan:

  • Metastore Apache Hive persisten hilang. Komputasi Spark tanpa server hanya mendukung Spark SQL dalam memori.
  • Tidak ada tabel atau database yang tersedia.
  • Integrasi Azure Purview hilang.
  • Tidak ada layanan tertaut yang tersedia.
  • Lebih sedikit sumber data dan konektor.
  • Tidak ada konfigurasi tingkat kumpulan.
  • Tidak ada manajemen pustaka tingkat kumpulan.
  • Hanya dukungan parsial untuk mssparkutils.

Konfigurasi jaringan

Untuk menggunakan isolasi jaringan dengan Azure Pembelajaran Mesin dan komputasi Spark tanpa server, gunakan jaringan virtual terkelola.

Periode tidak aktif dan mekanisme robek

Pada peluncuran pertama, sumber daya komputasi Spark tanpa server (cold start) mungkin perlu tiga hingga lima menit untuk memulai sesi Spark itu sendiri. Provisi komputasi Spark tanpa server otomatis, yang didukung oleh Azure Synapse, menyebabkan penundaan ini. Setelah komputasi Spark tanpa server disediakan, dan sesi Apache Spark dimulai, eksekusi kode berikutnya (mulai hangat) tidak akan mengalami penundaan ini.

Konfigurasi sesi Spark menawarkan opsi yang menentukan batas waktu sesi (dalam menit). Sesi Spark akan berakhir setelah periode tidak aktif yang melebihi batas waktu yang ditentukan pengguna. Jika sesi Spark lain tidak dimulai dalam 10 menit berikut, sumber daya yang disediakan untuk komputasi Spark tanpa server akan dirobohkan.

Setelah sumber daya komputasi Spark tanpa server merobohkan terjadi, pengiriman pekerjaan berikutnya akan memerlukan awal yang dingin. Visualisasi berikutnya menunjukkan beberapa periode tidak aktif sesi dan skenario teardown kluster.

Diagram yang dapat diperluas yang menunjukkan skenario untuk periode tidak aktif sesi Apache Spark dan teardown kluster.

Paket Conda tingkat sesi

File YAML dependensi Conda dapat menentukan banyak paket Conda tingkat sesi dalam konfigurasi sesi. Sesi akan kehabisan waktu jika membutuhkan lebih dari 15 menit untuk menginstal paket Conda yang ditentukan dalam file YAML. Menjadi penting untuk terlebih dahulu memeriksa apakah paket yang diperlukan sudah tersedia di gambar dasar Azure Synapse. Untuk melakukan ini, pengguna harus mengikuti tautan untuk menentukan paket yang tersedia dalam gambar dasar untuk versi Apache Spark yang digunakan:

Penting

Azure Synapse Runtime for Apache Spark: Pengumuman

  • Azure Synapse Runtime untuk Apache Spark 3.2:
    • Tanggal Pengumuman EOLA: 8 Juli 2023
    • Tanggal Akhir Dukungan: 8 Juli 2024. Setelah tanggal ini, runtime akan dinonaktifkan.
  • Untuk dukungan berkelanjutan dan performa optimal, kami menyarankan agar Anda bermigrasi ke

Catatan

Untuk paket Conda tingkat sesi:

  • Cold start akan membutuhkan sekitar sepuluh hingga lima belas menit.
  • Warm start, menggunakan paket Conda yang sama, akan membutuhkan waktu sekitar satu menit.
  • Warm start, dengan paket Conda yang berbeda, juga akan membutuhkan sekitar sepuluh hingga lima belas menit.
  • Jika paket yang Anda instal berukuran besar atau membutuhkan waktu penginstalan yang lama, paket tersebut mungkin berdampak pada waktu mulai instans Spark.
  • Mengubah versi PySpark, Python, Scala/Java, .NET, atau Spark tidak didukung.
  • Gambar Docker tidak didukung.

Meningkatkan waktu mulai dingin sesi saat menggunakan paket Conda tingkat sesi

Anda dapat meningkatkan waktu mulai dingin sesi Spark dengan mengatur spark.hadoop.aml.enable_cache variabel konfigurasi ke true. Sesi cold start dengan paket Conda tingkat sesi biasanya membutuhkan waktu 10 hingga 15 menit ketika sesi dimulai untuk pertama kalinya. Namun, sesi berikutnya mulai dingin membutuhkan waktu tiga hingga lima menit. Tentukan variabel konfigurasi di antarmuka konfigurasi pengguna sesi , di bawah Pengaturan konfigurasi.

Diagram yang dapat diperluas yang memperlihatkan tag konfigurasi sesi Spark yang memungkinkan cache.

Kumpulan Synapse Spark Terlampir

Kumpulan Spark yang dibuat di ruang kerja Azure Synapse tersedia di ruang kerja Azure Pembelajaran Mesin dengan kumpulan Synapse Spark yang terpasang. Opsi ini mungkin cocok untuk pengguna yang ingin menggunakan kembali kumpulan Synapse Spark yang ada.

Lampiran kumpulan Synapse Spark ke ruang kerja Azure Pembelajaran Mesin memerlukan langkah lain sebelum Anda dapat menggunakan kumpulan di Azure Pembelajaran Mesin untuk:

Kumpulan Synapse Spark terlampir menyediakan akses ke fitur Azure Synapse asli. Pengguna bertanggung jawab atas provisi kumpulan Synapse Spark, melampirkan, konfigurasi, dan manajemen.

Konfigurasi sesi Spark untuk kumpulan Synapse Spark yang terpasang juga menawarkan opsi untuk menentukan batas waktu sesi (dalam hitungan menit). Perilaku batas waktu sesi menyerupkan deskripsi di bagian sebelumnya, kecuali bahwa sumber daya terkait tidak pernah diruntuhkan setelah waktu sesi habis.

Menentukan ukuran kluster Spark

Dalam pekerjaan Azure Pembelajaran Mesin Spark, Anda dapat menentukan ukuran kluster Spark, dengan tiga nilai parameter:

  • Jumlah pelaksana
  • Inti eksekutor
  • Memori pelaksana

Anda harus mempertimbangkan eksekutor Azure Pembelajaran Mesin Apache Spark yang setara dengan simpul pekerja Azure Spark. Contohnya dapat menjelaskan parameter ini. Katakanlah Anda mendefinisikan jumlah pelaksana sebagai 6 (setara dengan enam simpul pekerja), jumlah inti eksekutor sebagai 4, dan memori pelaksana sebagai 28 GB. Pekerjaan Spark Anda kemudian memiliki akses ke kluster dengan total 24 core, dan memori 168 GB.

Memastikan akses sumber daya untuk pekerjaan Spark

Untuk mengakses data dan sumber daya lainnya, pekerjaan Spark dapat menggunakan identitas terkelola atau passthrough identitas pengguna. Tabel ini meringkas mekanisme yang digunakan pekerjaan Spark untuk mengakses sumber daya.

Kumpulan Spark Identitas yang didukung Identitas default
Komputasi Spark Tanpa Server Identitas pengguna, identitas terkelola yang ditetapkan pengguna yang dilampirkan ke ruang kerja Identitas pengguna
Kumpulan Synapse Spark Terlampir Identitas pengguna, identitas terkelola yang ditetapkan pengguna yang dilampirkan ke kumpulan Synapse Spark terlampir, identitas terkelola yang ditetapkan sistem dari kumpulan Synapse Spark terlampir Identitas terkelola yang ditetapkan sistem dari kumpulan Synapse Spark terlampir

Artikel ini menjelaskan akses sumber daya untuk pekerjaan Spark. Dalam sesi notebook, komputasi Spark tanpa server dan kumpulan Synapse Spark yang terpasang menggunakan passthrough identitas pengguna untuk akses data selama perselisihan data interaktif.

Catatan

  • Untuk memastikan keberhasilan eksekusi pekerjaan Spark, tetapkan peran Kontributor dan Kontributor Data Blob Penyimpanan (pada akun penyimpanan Azure yang digunakan untuk input dan output data) ke identitas yang akan digunakan untuk pengiriman pekerjaan Spark.
  • Jika kumpulan Synapse Spark terlampir menunjuk ke kumpulan Synapse Spark di ruang kerja Azure Synapse, dan ruang kerja tersebut memiliki jaringan virtual terkelola terkait, konfigurasikan titik akhir privat terkelola ke akun penyimpanan. Konfigurasi ini akan membantu memastikan akses data.

Langkah berikutnya