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
Klaster Apache Spark pada HDInsight. Untuk petunjuk selengkapnya, lihat Membuat kluster Apache Spark di Microsoft Azure HDInsight.
Eclipse IDE. Artikel ini menggunakan Eclipse IDE untuk Pengembang Java.
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.
Mengonfirmasi plug-in
Arahkan ke Bantuan>Eclipse Marketplace....
Pilih tab Terinstal.
Anda harus melihat setidaknya:
- <Versi> Azure Toolkit untuk Eclipse.
- <versi> scala IDE.
Masuk ke langganan Azure Anda
Mulai Eclipse IDE.
Arahkan ke Jendela>Tampilkan Tampilan>Lainnya...>Masuk...
Dari dialog Tampilkan Tampilan, arahkan ke Azure>Azure Explorer, lalu pilih Buka.
Dari Azure Explorer, klik kanan node Azure, lalu pilih Masuk.
Dalam kotak dialog Masuk Azure, pilih metode autentikasi, pilih Masuk, dan selesaikan proses masuk.
Setelah Anda masuk, kotak dialog Langganan Anda mencantumkan semua langganan Azure yang terkait dengan kredensial. Pilih OK untuk menutup kotak dialog.
Dari Azure Explorer, arahkan ke Azure>HDInsight untuk melihat klaster HDInsight Spark di bawah langganan Anda.
Anda dapat memperluas lebih lanjut node nama klaster untuk melihat sumber daya (misalnya, akun penyimpanan) yang terkait dengan klaster.
Tautkan kluster
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
.
Dari Azure Explorer, klik kanan HDInsight,dan pilih Menautkan Klaster.
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
Catatan
Kami menggunakan kunci penyimpanan, nama pengguna dan sandi yang ditautkan jika klaster masuk ke langganan Azure dan Menautkan klaster.
Untuk pengguna keyboard saja, ketika fokus saat ini berada di Kunci Penyimpanan, Anda perlu menggunakan Ctrl+TAB untuk fokus pada bidang berikutnya dalam dialog.
Anda dapat melihat klaster yang ditautkan di bawah HDInsight. Sekarang Anda dapat mengirimkan aplikasi ke klaster tertaut ini.
Anda juga dapat membatalkan tautan kluster dari Azure Explorer.
Menyiapkan proyek Spark Scala untuk klaster HDInsight Spark
Dari ruang kerja Eclipse IDE, pilih File>Proyek>Baru....
Di wizard Proyek Baru, pilih HDInsight Project>Spark pada HDInsight (Scala). Kemudian pilih Berikutnya.
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.
Dalam kotak dialog berikutnya, tinjau rinciannya, lalu pilih Selesai.
Membuat aplikasi Scala untuk klaster HDInsight Spark
Dari Package Explorer, perluas proyek yang Anda buat sebelumnya. Klik kanan src, pilih Baru>Lainnya....
Dalam kotak dialog Pilih wizard, pilih Wizard Scala >Objek Scala. Kemudian pilih Berikutnya.
Dalam kotak dialog Buat File Baru, masukkan nama untuk objek tersebut, lalu pilih Selesai. Editor teks akan terbuka.
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") } }
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.
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).
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
Di Azure Explorer, perluas HDInsight, lalu nama klaster Spark, lalu pilih Pekerjaan.
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.
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.
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.
Pilih tab Log untuk melihat log yang sering digunakan, termasuk Driver Stderr, Driver Stdout, dan Info Direktori.
Buka UI riwayat Spark dan APACHE Hadoop YARN UI (di tingkat aplikasi) dengan memilih hyperlink di bagian atas jendela.
Mengakses kontainer penyimpanan untuk klaster
Di Azure Explorer, perluas node akar HDInsight untuk melihat daftar klaster HDInsight Spark yang tersedia.
Perluas nama klaster untuk melihat akun penyimpanan dan kontainer penyimpanan default untuk klaster.
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
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.
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
Di Azure Explorer, klik kanan nama klaster Spark Anda, lalu pilih Membuka Portal Manajemen Klaster (Ambari).
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.
Di Azure Explorer, klik kanan node akar Azure, lalu pilih Mengelola Langganan.
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
Mulai Eclipse dan buat proyek. Dalam kotak dialog Proyek Baru, buat pilihan berikut ini, lalu pilih Berikutnya.
Di wizard Proyek Baru, pilih Proyek HDInsight>Spark pada Sampel Berjalan Lokal HDInsight (Scala). Kemudian pilih Berikutnya.
Untuk memberikan rincian proyek, ikuti langkah 3 sampai 6 dari bagian sebelumnya Menyiapkan proyek Spark Scala untuk klaster HDInsight Spark.
Templat ini menambahkan kode sampel (LogQuery) di bawah folder src yang dapat Anda jalankan secara lokal di komputer Anda.
Klik kanan LogQuery.scala, dan pilih Jalankan Sebagai>1 Aplikasi Scala. Output seperti ini muncul pada tab Konsol:
Peran khusus pembaca
Ketika pengguna mengirimkan pekerjaan ke klaster dengan izin peran khusus pembaca, kredensial Ambari diperlukan.
Klaster tautan dari menu konteks
Masuklah dengan akun peran khusus pembaca.
Dari Azure Explorer, perluas HDInsight untuk melihat klaster HDInsight yang ada di langganan Anda. Kluster bertanda "Role:Reader" hanya memiliki izin peran khusus pembaca.
Klik kanan kluster dengan izin peran pembaca saja. Pilih Tautkan kluster ini dari menu konteks untuk menautkan kluster. Masukkan nama pengguna dan sandi Ambari.
Jika kluster berhasil ditautkan, HDInsight akan disegarkan. Tahapan klaster akan menjadi tertaut.
Menautkan klaster dengan memperluas node Pekerjaan
Klik node Pekerjaan maka akan muncul jendela Akses Pekerjaan Kluster Ditolak.
Klik Tautkan klaster ini untuk menautkan klaster.
Menautkan klaster dari jendela Pengiriman Spark
Buat Proyek HDInsight.
Klik kanan paket. Kemudian pilih Mengirim Aplikasi Spark ke HDInsight.
Pilih klaster, yang memiliki izin peran khusus pembaca untuk Nama Klaster. Pesan peringatan muncul. Anda dapat mengeklik Tautkan klaster ini untuk menautkan klaster.
Menampilkan Akun Penyimpanan
Untuk klaster dengan izin peran khusus pembaca, klik node Akun Penyimpanan, jendela Akses Penyimpanan Ditolak muncul.
Untuk klaster tertaut, klik node Akun Penyimpanan, jendela Akses Penyimpanan Ditolak muncul.
Masalah yang diketahui
Ketika menggunakan Tautkan klaster, saya menyarankan Anda untuk memberikan kredensial penyimpanan.
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.
Lihat juga
Skenario
- Apache Spark dengan BI: Melakukan analisis data interaktif menggunakan Spark di HDInsight dengan alat BI
- Apache Spark dengan Pembelajaran Mesin: Menggunakan Apache Spark di HDInsight untuk menganalisis suhu bangunan menggunakan data HVAC
- Apache Spark dengan Pembelajaran Mesin: Menggunakan Spark di Microsoft Azure HDInsight untuk memprediksi hasil pemeriksaan makanan
- Analisis log situs web menggunakan Apache Spark di HDInsight
Pembuatan dan eksekusi aplikasi
- Membuat aplikasi mandiri menggunakan Scala
- Jalankan pekerjaan dari jarak jauh pada kluster Apache Spark menggunakan Apache Livy
Alat dan ekstensi
- Menggunakan Azure Toolkit untuk IntelliJ untuk membuat dan mengirimkan aplikasi Spark Scala
- Menggunakan Azure Toolkit untuk IntelliJ untuk men-debug aplikasi Apache Spark dari jarak jauh melalui VPN
- Menggunakan Azure Toolkit untuk IntelliJ untuk men-debug aplikasi Apache Spark dari jarak jauh melalui SSH
- Menggunakan notebook Apache Zeppelin dengan Apache Spark pada Microsoft Azure HDInsight
- Kernel tersedia untuk Jupyter Notebook di kluster Apache Spark untuk Microsoft Azure HDInsight
- Menggunakan paket eksternal dengan Jupyter Notebooks
- Pasang Jupyter di komputer Anda dan sambungkan ke kluster Microsoft Azure HDInsight Spark