Menggunakan Azure Toolkit untuk Eclipse untuk membuat aplikasi Apache Spark untuk klaster HDInsight

Gunakan HDInsight Tool di Azure Toolkit untuk Eclipse untuk mengembangkan aplikasi Apache Spark yang ditulis di Scala dan mengirimkannya ke klaster Azure HDInsight Spark, langsung dari Eclipse IDE. Anda dapat menggunakan plug-in HDInsight Tool dengan beberapa cara berbeda:

  • Untuk mengembangkan dan mengirim aplikasi Scala Spark pada klaster HDInsight Spark.
  • Untuk mengakses sumber daya klaster Azure HDInsight Spark Anda.
  • Untuk mengembangkan dan menjalankan aplikasi Scala Spark secara lokal.

Prasyarat

Menginstal plug-in yang diperlukan

Menginstal Azure Toolkit untuk Eclipse

Untuk instruksi penginstalan, lihat Menginstal Azure Toolkit untuk Eclipse.

Menginstal plug-in Scala

Ketika Anda membuka Eclipse, HDInsight Tool secara otomatis mendeteksi apakah Anda menginstal plug-in Scala. Pilih OK untuk melanjutkan, lalu ikuti instruksi untuk menginstal plug-in dari Eclipse Marketplace. Mulai ulang IDE setelah penginstalan selesai.

Automatic installation of the Scala plug-in.

Mengonfirmasi plug-in

  1. Arahkan ke Bantuan>Eclipse Marketplace....

  2. Pilih tab Terinstal.

  3. Anda harus melihat setidaknya:

    • <Versi> Azure Toolkit untuk Eclipse.
    • <versi> scala IDE.

Masuk ke langganan Azure Anda

  1. Mulai Eclipse IDE.

  2. Arahkan ke Jendela>Tampilkan Tampilan>Lainnya...>Masuk...

  3. Dari dialog Tampilkan Tampilan, arahkan ke Azure>Azure Explorer, lalu pilih Buka.

    Apache Spark Eclipse show view.

  4. Dari Azure Explorer, klik kanan node Azure, lalu pilih Masuk.

  5. Dalam kotak dialog Masuk Azure, pilih metode autentikasi, pilih Masuk, dan selesaikan proses masuk.

    Apache Spark Eclipse Azure Sign.

  6. Setelah Anda masuk, kotak dialog Langganan Anda mencantumkan semua langganan Azure yang terkait dengan kredensial. Pilih OK untuk menutup kotak dialog.

    Select Subscriptions dialog box.

  7. Dari Azure Explorer, arahkan ke Azure>HDInsight untuk melihat klaster HDInsight Spark di bawah langganan Anda.

    HDInsight Spark clusters in Azure Explorer3.

  8. Anda dapat memperluas lebih lanjut node nama klaster untuk melihat sumber daya (misalnya, akun penyimpanan) yang terkait dengan klaster.

    Expanding a cluster name to see resources.

Anda dapat menautkan klaster normal dengan menggunakan nama pengguna yang dikelola Ambari. Demikian pula, untuk kluster HDInsight yang bergabung dengan domain, Anda dapat menautkan dengan menggunakan domain dan nama pengguna, seperti user1@contoso.com.

  1. Dari Azure Explorer, klik kanan HDInsight,dan pilih Menautkan Klaster.

    Azure Explorer link cluster menu.

  2. Masukkan Nama Klaster, Nama Pengguna, dan Sandi, lalu pilih OK. Secara opsional, masukkan Akun Penyimpanan, Kunci Penyimpanan lalu pilih Kontainer Penyimpanan agar penjelajah penyimpanan berfungsi di tampilan pohon kiri

    Link New HDInsight cluster dialog.

    Catatan

    Kami menggunakan kunci penyimpanan, nama pengguna dan sandi yang ditautkan jika klaster masuk ke langganan Azure dan Menautkan klaster. Azure Explorer storage accounts.

    Untuk pengguna keyboard saja, ketika fokus saat ini berada di Kunci Penyimpanan, Anda perlu menggunakan Ctrl+TAB untuk fokus pada bidang berikutnya dalam dialog.

  3. Anda dapat melihat klaster yang ditautkan di bawah HDInsight. Sekarang Anda dapat mengirimkan aplikasi ke klaster tertaut ini.

    Azure Explorer hdi linked cluster.

  4. Anda juga dapat membatalkan tautan kluster dari Azure Explorer.

    Azure Explorer unlinked cluster.

Menyiapkan proyek Spark Scala untuk klaster HDInsight Spark

  1. Dari ruang kerja Eclipse IDE, pilih File>Proyek>Baru....

  2. Di wizard Proyek Baru, pilih HDInsight Project>Spark pada HDInsight (Scala). Kemudian pilih Berikutnya.

    Selecting the Spark on HDInsight (Scala) project.

  3. Dalam kotak dialog Proyek HDInsight Scala Baru, berikan nilai berikut ini, lalu pilih Berikutnya:

    • Masukkan nama untuk proyek tersebut.
    • Di area JRE, pastikan bahwa Menggunakan lingkungan eksekusi JRE diatur ke JavaSE-1.7 atau yang lebih baru.
    • Di area Pustaka Spark, Anda bisa memilih opsi Menggunakan Maven untuk mengonfigurasi Spark SDK. Alat kami mengintegrasikan versi yang tepat untuk Spark SDK dan Scala SDK. Anda juga dapat memilih opsi Menambahkan Spark SDK secara manual, mengunduh, dan menambahkan Spark SDK secara manual.

    New HDInsight Scala Project dialog box.

  4. Dalam kotak dialog berikutnya, tinjau rinciannya, lalu pilih Selesai.

Membuat aplikasi Scala untuk klaster HDInsight Spark

  1. Dari Package Explorer, perluas proyek yang Anda buat sebelumnya. Klik kanan src, pilih Baru>Lainnya....

  2. Dalam kotak dialog Pilih wizard, pilih Wizard Scala >Objek Scala. Kemudian pilih Berikutnya.

    Select a wizard Create a Scala Object.

  3. Dalam kotak dialog Buat File Baru, masukkan nama untuk objek tersebut, lalu pilih Selesai. Editor teks akan terbuka.

    New File Wizard Create New File.

  4. Di editor teks, ganti konten saat ini dengan kode di bawah ini:

    import org.apache.spark.SparkConf
    import org.apache.spark.SparkContext
    
    object MyClusterApp{
        def main (arg: Array[String]): Unit = {
        val conf = new SparkConf().setAppName("MyClusterApp")
        val sc = new SparkContext(conf)
    
        val rdd = sc.textFile("wasbs:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
        //find the rows that have only one digit in the seventh column in the CSV
        val rdd1 =  rdd.filter(s => s.split(",")(6).length() == 1)
    
        rdd1.saveAsTextFile("wasbs:///HVACOut")
        }
    }
    
  5. Jalankan aplikasi pada klaster HDInsight Spark:

    a. Dari Package Explorer, klik kanan nama proyek, lalu pilih Mengirim Aplikasi Spark ke HDInsight.

    b. Dalam kotak dialog Pengiriman Spark, berikan nilai berikut, lalu pilih Kirim:

    • Untuk Nama klaster, pilih klaster HDInsight Spark tempat Anda ingin menjalankan aplikasi.

    • Pilih artefak dari proyek Eclipse, atau pilih salah satu dari hard drive. Nilai default bergantung pada item yang Anda klik kanan dari Package Explorer.

    • Di daftar tarik turun Nama kelas utama, wizard pengiriman menampilkan semua nama objek dari proyek Anda. Pilih atau masukkan salah satu yang ingin Anda jalankan. Jika Anda memilih artefak dari hard drive, Anda harus memasukkan nama kelas utama secara manual.

    • Karena kode aplikasi dalam contoh ini tidak memerlukan argumen baris perintah atau JAR atau file referensi, Anda dapat membiarkan kotak teks yang tersisa kosong.

      Apache Spark Submission dialog box.

  6. Tab Pengiriman Spark akan mulai menampilkan kemajuan. Anda dapat menghentikan aplikasi dengan memilih tombol merah di jendela Pengiriman Spark. Anda juga bisa melihat log untuk aplikasi tertentu ini yang dijalankan dengan memilih ikon bola dunia (ditandai dengan kotak biru dalam gambar).

    Apache Spark Submission window.

Mengakses dan mengelola klaster HDInsight Spark dengan menggunakan HDInsight Tool di Azure Toolkit untuk Eclipse

Anda dapat melakukan berbagai operasi dengan menggunakan HDInsight Tool, termasuk mengakses output pekerjaan.

Mengakses tampilan pekerjaan

  1. Di Azure Explorer, perluas HDInsight, lalu nama klaster Spark, lalu pilih Pekerjaan.

    Azure Explorer Eclipse job view node.

  2. Pilih node Pekerjaan. Jika versi Java lebih rendah dari 1.8, HDInsight Tool secara otomatis mengingatkan Anda untuk menginstal plug-in E(fx)clipse. Pilih OK untuk melanjutkan, lalu ikuti wizard untuk menginstalnya dari Eclipse Marketplace dan memulai ulang Eclipse.

    Install missing plugin E(fx)clipse.

  3. Buka Tampilan Pekerjaan dari node Pekerjaan. Di panel kanan, tab Tampilan Pekerjaan Spark menampilkan semua aplikasi yang dijalankan pada klaster. Pilih nama aplikasi yang ingin Anda lihat rincian lengkapnya.

    Apache Eclipse view job logs details.

    Anda kemudian dapat melakukan salah satu tindakan ini:

    • Arahkan kursor ke grafik pekerjaan. Ia menampilkan info dasar tentang pekerjaan yang sedang berjalan. Pilih grafik pekerjaan, dan Anda dapat melihat tahapan dan info yang dihasilkan setiap pekerjaan.

      Apache Spark job graph stage info.

    • Pilih tab Log untuk melihat log yang sering digunakan, termasuk Driver Stderr, Driver Stdout, dan Info Direktori.

      Apache Spark Eclipse job log info.

    • Buka UI riwayat Spark dan APACHE Hadoop YARN UI (di tingkat aplikasi) dengan memilih hyperlink di bagian atas jendela.

Mengakses kontainer penyimpanan untuk klaster

  1. Di Azure Explorer, perluas node akar HDInsight untuk melihat daftar klaster HDInsight Spark yang tersedia.

  2. Perluas nama klaster untuk melihat akun penyimpanan dan kontainer penyimpanan default untuk klaster.

    Storage account and default storage container.

  3. Pilih nama kontainer penyimpanan yang terkait dengan klaster. Di panel kanan, klik dua kali folder HVACOut. Buka salah satu file bagian- untuk melihat output aplikasi.

Membuka server riwayat Spark

  1. Di Azure Explorer, klik kanan nama klaster Spark Anda, lalu pilih Membuka UI Riwayat Spark. Ketika diminta, masukkan kredensial admin untuk klaster. Anda menentukan ini saat menyediakan klaster.

  2. Di dasbor Spark history server, Anda menggunakan nama aplikasi untuk mencari aplikasi yang baru saja selesai Anda jalankan. Dalam kode sebelumnya, Anda mengatur nama aplikasi dengan menggunakan val conf = new SparkConf().setAppName("MyClusterApp"). Jadi, nama aplikasi Spark Anda adalah MyClusterApp.

Memulai portal Apache Ambari

  1. Di Azure Explorer, klik kanan nama klaster Spark Anda, lalu pilih Membuka Portal Manajemen Klaster (Ambari).

  2. Ketika diminta, masukkan kredensial admin untuk klaster. Anda menentukan ini saat menyediakan klaster.

Mengelola langganan Azure

Secara default, HDInsight Tool di Azure Toolkit untuk Eclipse mencantumkan klaster Spark dari semua langganan Azure Anda. Jika diperlukan, Anda dapat menentukan langganan yang ingin Anda akses klasternya.

  1. Di Azure Explorer, klik kanan node akar Azure, lalu pilih Mengelola Langganan.

  2. Dalam kotak dialog, kosongkan kotak centang untuk langganan yang tidak ingin Anda akses, lalu pilih Tutup. Anda juga bisa memilih Keluar jika Anda ingin keluar dari langganan Azure Anda.

Menjalankan aplikasi Spark Scala secara lokal

Anda dapat menggunakan HDInsight Tool di Azure Toolkit untuk Eclipse untuk menjalankan aplikasi Spark Scala secara lokal di stasiun kerja Anda. Biasanya, aplikasi ini tidak memerlukan akses ke sumber daya klaster seperti kontainer penyimpanan, dan Anda dapat menjalankan dan mengujinya secara lokal.

Prasyarat

Saat Anda menjalankan aplikasi Spark Scala lokal di komputer Windows, Anda mungkin mendapatkan pengecualian, seperti yang dijelaskan dalam SPARK-2356. Pengecualian ini terjadi karena WinUtils.exe hilang di Windows.

Untuk mengatasi eror ini, Anda memerlukan Winutils.exe ke lokasi seperti C:\WinUtils\bin, dan kemudian menambahkan variabel lingkungan HADOOP_HOME dan mengatur nilai variabel ke C\WinUtils.

Menjalankan aplikasi Spark Scala lokal

  1. Mulai Eclipse dan buat proyek. Dalam kotak dialog Proyek Baru, buat pilihan berikut ini, lalu pilih Berikutnya.

  2. Di wizard Proyek Baru, pilih Proyek HDInsight>Spark pada Sampel Berjalan Lokal HDInsight (Scala). Kemudian pilih Berikutnya.

    New project selects a wizard dialog.

  3. Untuk memberikan rincian proyek, ikuti langkah 3 sampai 6 dari bagian sebelumnya Menyiapkan proyek Spark Scala untuk klaster HDInsight Spark.

  4. Templat ini menambahkan kode sampel (LogQuery) di bawah folder src yang dapat Anda jalankan secara lokal di komputer Anda.

    Location of LogQuery local scala application.

  5. Klik kanan LogQuery.scala, dan pilih Jalankan Sebagai>1 Aplikasi Scala. Output seperti ini muncul pada tab Konsol:

    Spark application local run result.

Peran khusus pembaca

Ketika pengguna mengirimkan pekerjaan ke klaster dengan izin peran khusus pembaca, kredensial Ambari diperlukan.

  1. Masuklah dengan akun peran khusus pembaca.

  2. Dari Azure Explorer, perluas HDInsight untuk melihat klaster HDInsight yang ada di langganan Anda. Kluster bertanda "Role:Reader" hanya memiliki izin peran khusus pembaca.

    HDInsight Spark clusters in Azure Explorer role reader.

  3. Klik kanan kluster dengan izin peran pembaca saja. Pilih Tautkan kluster ini dari menu konteks untuk menautkan kluster. Masukkan nama pengguna dan sandi Ambari.

    HDInsight Spark clusters in Azure Explorer link.

  4. Jika kluster berhasil ditautkan, HDInsight akan disegarkan. Tahapan klaster akan menjadi tertaut.

    HDInsight Spark clusters in Azure Explorer linked.

  1. Klik node Pekerjaan maka akan muncul jendela Akses Pekerjaan Kluster Ditolak.

  2. Klik Tautkan klaster ini untuk menautkan klaster.

    HDInsight Spark clusters in Azure Explorer9.

  1. Buat Proyek HDInsight.

  2. Klik kanan paket. Kemudian pilih Mengirim Aplikasi Spark ke HDInsight.

    HDInsight Spark clusters in Azure Explorer submit.

  3. Pilih klaster, yang memiliki izin peran khusus pembaca untuk Nama Klaster. Pesan peringatan muncul. Anda dapat mengeklik Tautkan klaster ini untuk menautkan klaster.

    HDInsight Spark clusters in Azure Explorer link this.

Menampilkan Akun Penyimpanan

  • Untuk klaster dengan izin peran khusus pembaca, klik node Akun Penyimpanan, jendela Akses Penyimpanan Ditolak muncul.

    HDInsight Spark clusters in Azure Explorer storage.

    HDInsight Spark clusters in Azure Explorer denied.

  • Untuk klaster tertaut, klik node Akun Penyimpanan, jendela Akses Penyimpanan Ditolak muncul.

    HDInsight Spark clusters in Azure Explorer denied2.

Masalah yang diketahui

Ketika menggunakan Tautkan klaster, saya menyarankan Anda untuk memberikan kredensial penyimpanan.

link cluster with storage credential eclipses.

Ada dua mode untuk mengirimkan pekerjaan. Jika kredensial penyimpanan disediakan, mode batch akan digunakan untuk mengirimkan pekerjaan. Jika tidak, mode interaktif akan digunakan. Jika klaster sibuk, Anda mungkin mendapatkan eror di bawah ini.

eclipse get error when cluster busy.

eclipse get error when cluster busy yarn.

Lihat juga

Skenario

Pembuatan dan eksekusi aplikasi

Alat dan ekstensi

Pengelolaan sumber daya