Debug aplikasi Apache Spark pada kluster Microsoft Azure HDInsight dengan Azure Toolkit untuk IntelliJ melalui SSH

Panduan langkah demi langkah tentang cara menggunakan alat Microsoft Azure HDInsight di Azure Toolkit untuk IntelliJ untuk men-debug aplikasi dari jarak jauh pada kluster Microsoft Azure HDInsight melalui SSH.

Prasyarat

Membuat aplikasi Spark Scala

  1. Buka IntelliJ IDEA, dan pilih Buat Proyek Baru untuk membuka jendela Proyek Baru.

  2. Pilih Apache Spark/Azure HDInsight dari panel sebelah kiri.

  3. Pilih Proyek Spark (Scala) dari jendela utama.

  4. Dari daftar turun bawah Alat build, pilih salah satu nilai berikut ini:

    • Maven untuk dukungan wizard pembuatan proyek Scala.
    • SBT untuk mengelola dependensi dan pembangunan proyek Scala.

    Intellij Create New Project Spark.

  5. Pilih Selanjutnya.

  6. Di jendela Proyek Baru, berikan informasi berikut ini:

    Properti Deskripsi
    Nama proyek Masukkan nama. Hal ini berjalan melalui menggunakan myApp.
    Lokasi proyek Masukkan lokasi yang diinginkan untuk menyimpan proyek Anda.
    SDK Proyek Jika kosong, pilih Baru... dan navigasikan ke JDK Anda.
    Versi Spark Wizard pembuatan mengintegrasikan versi yang tepat untuk SDK Spark dan SDK Scala. Jika versi kluster Spark lebih lama dari 2.0, pilih Spark 1.x. Jika tidak, pilih Spark2.x. Contoh ini menggunakan Spark 2.3.0 (Scala 2.11.8).

    Intellij New Project select Spark version.

  7. Pilih Selesai. Hal ini memerlukan waktu beberapa menit sebelum proyek tersedia. Perhatikan sudut kanan bawah untuk progres.

  8. Perluas proyek Anda, dan arahkan ke sampel>skala>utama>SRC. Klik ganda SparkCore_WasbIOTest.

Melakukan jalankan lokal

  1. Dari skrip SparkCore_WasbIOTest, klik kanan editor skrip, lalu pilih opsi Jalankan 'SparkCore_WasbIOTest' untuk melakukan jalankan local.

  2. Setelah jalankan lokal selesai, Anda dapat melihat file output menyimpan ke data> penjelajah proyek Anda saat ini secara default.

    Intellij Project local run result.

  3. Alat kami telah mengatur konfigurasi jalankan lokal default secara otomatis saat Anda melakukan jalankan lokal dan debug lokal. Buka konfigurasi [Spark pada Microsoft Azure HDInsight] XXX di sudut kanan atas, Anda dapat melihat [Spark pada Microsoft Azure HDInsight]XXX yang sudah dibuat di bawah Apache Spark di Microsoft Azure HDInsight. Beralih ke tab Jalankan Secara Lokal.

    Intellij Run debug configurations local run.

    • Variabel lingkungan: Jika Anda sudah mengatur variabel lingkungan sistem HADOOP_HOME ke C:\WinUtils, hal tersebut dapat secara otomatis mendeteksi bahwa tidak perlu menambahkan secara manual.
    • Lokasi WinUtils.exe: Jika Anda belum mengatur variabel lingkungan sistem, Anda dapat menemukan lokasi dengan mengklik tombolnya.
    • Cukup pilih salah satu dari dua opsi dan, mereka tidak diperlukan di MacOS dan Linux.
  4. Anda juga dapat mengatur konfigurasi secara manual sebelum melakukan jalankan lokal dan debug lokal. Di cuplikan layar sebelumnya, pilih tanda plus (+). Kemudian pilih opsi Apache Spark pada Microsoft Azure HDInsight. Masukkan informasi untuk Nama, Nama kelas utama untuk disimpan, lalu klik tombol jalankan lokal.

Melakukan proses penelusuran kesalahan lokal

  1. Buka skrip SparkCore_wasbloTest, atur titik henti.

  2. Klik kanan editor skrip, lalu pilih opsi Debug '[Spark on HDInsight]XXX' untuk melakukan penelusuran kesalahan lokal.

Melakukan jalankan jarak jauh

  1. Arahkan ke Jalankan>Konfigurasi Edit.... Dari menu ini, Anda dapat membuat atau mengedit konfigurasi untuk penelusuran kesalahan jarak jauh.

  2. Dalam kotak dialog Jalankan/Debug Konfigurasi, pilih tanda plus (+). Kemudian pilih opsi Apache Spark pada Microsoft Azure HDInsight.

    Intellij Add new configuration.

  3. Beralih ke Jalankan Dari Jarak Jauh di tab Kluster. Masukkan informasi untuk Nama, kluster Spark, dan Nama kelas utama. Lalu Klik Konfigurasi tingkat lanjut (Penelusuran kesalahan Jarak Jauh). Alat kami mendukung debug dengan Pelaksana. NumExectors, nilai defaultnya adalah 5. Anda lebih baik tidak mengatur lebih tinggi dari 3.

    Intellij Run debug configurations.

  4. Di bagian Konfigurasi Tingkat Lanjut (Penelusuran kesalahan Jarak Jauh), pilih Aktifkan debug jarak jauh Spark. Masukkan nama pengguna SSH, lalu masukkan kata sandi atau gunakan file kunci pribadi. Jika Anda ingin melakukan debug jarak jauh, Anda perlu mengaturnya. Tidak perlu mengaturnya jika Anda hanya ingin menggunakan jalankan dari jarak jauh.

    Intellij Advanced Configuration enable spark remote debug.

  5. Konfigurasi tersebut sekarang disimpan dengan nama yang Anda berikan. Untuk menampilkan detail konfigurasi, pilih nama konfigurasi. Untuk membuat perubahan, pilih Edit Konfigurasi.

  6. Setelah Anda selesai melakukan pengaturan konfigurasi, Anda dapat menjalankan proyek terhadap kluster jarak jauh atau lakukan penelusuran kesalahan dari jarak jauh.

    Intellij Debug Remote Spark Job Remote run button.

  7. Klik tombol Putuskan bahwa log pengiriman tidak muncul di panel kiri. Namun, hal tersebut masih berjalan di backend.

    Intellij Debug Remote Spark Job Remote run result.

Melakukan penelusuran kesalahan dari jarak jauh

  1. Siapkan titik henti, lalu Klik ikon Debug jarak jauh. Perbedaan dengan pengiriman jarak jauh adalah bahwa nama pengguna/kata sandi SSH perlu dikonfigurasi.

    Intellij Debug Remote Spark Job debug icon.

  2. Ketika eksekusi program mencapai titik pemutusan, Anda akan melihat tab Driver dan dua tab Pelaksana di panel Debugger. Pilih ikon Lanjutkan Program untuk terus menjalankan kode, yang kemudian mencapai titik henti berikutnya. Anda perlu beralih ke tab Pelaksana yang benar untuk menemukan pelaksana target untuk debug. Anda dapat melihat log eksekusi pada tab Konsol terkait.

    Intellij Debug Remote Spark Job Debugging tab.

Melakukan penelusuran kesalahan jarak jauh dan memperbaiki bug

  1. Siapkan dua titik henti, lalu pilih ikon Debug untuk memulai proses penelusuran kesalahan jarak jauh.

  2. Kode berhenti pada titik henti pertama, dan parameter dan informasi variabel ditampilkan di panel Variabel.

  3. Pilih ikon Lanjutkan Program untuk melanjutkan. Kode berhenti pada titik kedua. Pengecualian tertangkap seperti yang diharapkan.

    Intellij Debug Remote Spark Job throw error.

  4. Pilih ikon Lanjutkan Program lagi. Jendela Pengiriman Microsoft Azure HDInsight Spark menampilkan kesalahan "pekerjaan gagal dijalankan".

    Intellij Debug Remote Spark Job Error submission.

  5. Untuk memperbarui nilai variabel secara dinamis dengan menggunakan kemampuan penelusuran kesalahan IntelliJ, pilih Debug lagi. Panel Variabel muncul lagi.

  6. Klik kanan target pada tab Debug, lalu pilih Set Nilai. Selanjutnya, masukkan nilai baru untuk variabel. Lalu pilih Masukkan untuk menyimpan nilai.

    Intellij Debug Remote Spark Job set value.

  7. Pilih ikon Lanjutkan Program untuk terus menjalankan program. Kali ini, tak terkecuali yang tertangkap. Anda dapat melihat bahwa proyek berjalan dengan sukses tanpa pengecualian.

    Intellij Debug Remote Spark Job without exception.

Langkah berikutnya

Skenario

Membuat dan menjalankan aplikasi

Alat dan ekstensi

Mengelola sumber daya