Tutorial: Membuat aplikasi Scala Maven untuk Apache Spark di HDInsight menggunakan IntelliJ

Dalam tutorial ini, Anda belajar cara membuat aplikasi Apache Spark yang ditulis dalam Scala menggunakan Apache Maven dengan IntelliJ IDEA. Artikel ini menggunakan Apache Maven sebagai sistem build. Dan dimulai dengan arketipe Maven yang ada untuk Scala yang disediakan oleh IntelliJ IDEA. Membuat aplikasi Scala di IntelliJ IDEA mencakup langkah-langkah berikut:

  • Gunakan Maven sebagai sistem build.
  • Perbarui file Project Object Model (POM/Model Objek Proyek) untuk menangani dependensi modul Spark.
  • Tulis aplikasi Anda dalam Scala.
  • Buat file jar yang dapat dikirim ke kluster Spark HDInsight.
  • Jalankan aplikasi pada kluster Spark menggunakan Livy.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Pasang plugin Scala untuk IntelliJ IDEA
  • Gunakan IntelliJ untuk mengembangkan aplikasi Scala Maven
  • Buat proyek Scala mandiri

Prasyarat

Pasang plugin Scala untuk IntelliJ IDEA

Lakukan langkah-langkah berikut untuk menginstal plugin Scala:

  1. Buka IntelliJ IDEA.

  2. Pada layar selamat datang, navigasi ke Konfigurasikan > Plugin untuk membuka jendela Plugin.

    `IntelliJ IDEA aktifkan plugin scala`

  3. Pilih Instal untuk plugin Scala yang ditampilkan di jendela baru.

    `IntelliJ IDEA instal plugin scala`

  4. Setelah plugin berhasil diinstal, Anda harus menghidupkan ulang IDE.

Gunakan IntelliJ untuk membuat aplikasi

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

  2. Pilih Apache Spark/HDInsight dari panel sisi kiri.

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

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

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

    Kotak dialog IntelliJ Proyek Baru

  5. Pilih Selanjutnya.

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

    Properti Deskripsi
    Nama proyek Masukkan nama.
    Lokasi proyek  Masukkan lokasi untuk menyimpan proyek Anda.
    SDK Proyek Bidang ini kosong pada penggunaan IDEA pertama Anda. Pilih Baru... dan navigasi ke JDK Anda.
    Versi Spark Wizard pembuatan mengintegrasikan versi yang tepat untuk Spark SDK dan Scala SDK. 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 IDEA Memilih SDK Spark

  7. Pilih Selesai.

Buat proyek Scala mandiri

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

  2. Pilih Maven dari panel kiri.

  3. Tentukan SDK Proyek. Jika kosong, pilih Baru... dan navigasi ke direktori instalasi Java.

  4. Pilih kotak centang Buat dari arketipe.

  5. Dari daftar arketipe, pilih org.scala-tools.archetypes:scala-archetype-simple . Arketipe ini membuat struktur direktori yang tepat dan mengunduh dependensi default yang diperlukan untuk menulis program Scala.

    Cuplikan layar menampilkan arketipe yang dipilih di jendela Proyek Baru.

  6. Pilih Selanjutnya.

  7. Luaskan Koordinat Artefak. Berikan nilai yang relevan untuk GroupId, dan ArtifactId. Nama, dan Lokasi akan otomatis diisi. Nilai-nilai berikut digunakan dalam tutorial ini:

    • GroupId: com.microsoft.spark.example
    • ArtifactId: SparkSimpleApp

    Cuplikan layar menampilkan opsi Koordinat Artefak di jendela Proyek Baru.

  8. Pilih Selanjutnya.

  9. Verifikasi pengaturan tersebut lalu pilih Berikutnya.

  10. Verifikasi nama dan lokasi proyek, lalu pilih Selesai. Proyek ini akan memakan waktu beberapa menit untuk mengimpor.

  11. Setelah proyek diimpor, dari panel kiri navigasi ke SparkSimpleApp > src > test > scala > com > microsoft > spark > example. Klik kanan MySpec, lalu pilih Hapus... . Anda tidak memerlukan file ini untuk aplikasi ini. Pilih OK dalam kotak dialog.

  12. Pada langkah selanjutnya, Anda perbarui pom.xml untuk menentukan dependensi aplikasi Spark Scala. Supaya dependensi tersebut diunduh dan ditangani secara otomatis, Anda harus mengonfigurasikan Maven.

  13. Dari menu File, pilih Pengaturan untuk membuka jendela Pengaturan.

  14. Dari jendela Pengaturan, navigasi ke Build, Eksekusi, Penyebaran > Alat Build > Maven > Mengimpor.

  15. Pilih kotak centang Impor proyek Maven secara otomatis.

  16. Pilih Terapkan, lalu pilih OK. Anda kemudian akan dikembalikan ke jendela proyek.

    Mengonfigurasi Maven untuk pengunduhan otomatis

  17. Dari panel kiri, navigasi ke src > main > scala > com.microsoft.spark.example, lalu klik dua kali App untuk membuka App.scala.

  18. Ganti kode sampel yang ada dengan kode berikut dan simpan perubahan. Kode ini membaca data dari HVAC.csv (tersedia di semua kluster Spark HDInsight). Ambil baris yang hanya memiliki satu digit di kolom keenam. Dan tulis output ke /HVACOut di dalam kontainer penyimpanan default untuk kluster itu.

    package com.microsoft.spark.example
    
    import org.apache.spark.SparkConf
    import org.apache.spark.SparkContext
    
    /**
      * Test IO to wasb
      */
    object WasbIOTest {
        def main (arg: Array[String]): Unit = {
            val conf = new SparkConf().setAppName("WASBIOTest")
            val sc = new SparkContext(conf)
    
            val rdd = sc.textFile("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
            //find the rows which have only one digit in the 7th column in the CSV
            val rdd1 = rdd.filter(s => s.split(",")(6).length() == 1)
    
            rdd1.saveAsTextFile("wasb:///HVACout")
        }
    }
    
  19. Di panel kiri, klik dua kali pom.xml.

  20. Dalam <project>\<properties> tambahkan segmen berikut:

    <scala.version>2.11.8</scala.version>
    <scala.compat.version>2.11.8</scala.compat.version>
    <scala.binary.version>2.11</scala.binary.version>
    
  21. Dalam <project>\<dependencies> tambahkan segmen berikut:

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_${scala.binary.version}</artifactId>
        <version>2.3.0</version>
    </dependency>
    

    Simpan perubahan ke pom.xml.

  22. Membuat file .jar. IntelliJ IDEA memungkinkan pembuatan JAR sebagai artefak proyek. Lakukan langkah-langkah berikut.

    1. Dari menu File, pilih Struktur Proyek... .

    2. Dari jendela Struktur Proyek, navigasi ke Artefak > simbol plus + > JAR > Dari modul dengan dependensi... .

      `IntelliJ IDEA struktur proyek tambah jar`

    3. Di jendela Buat JAR dari Modul, pilih ikon folder di kotak teks Kelas Utama.

    4. Di jendela Pilih Kelas Utama, pilih kelas yang muncul secara default lalu pilih OK.

      `IntelliJ IDEA struktur proyek pilih kelas`

    5. Di jendela Buat JAR dari Modul, pastikan opsi ekstrak ke JAR target dipilih, lalu pilih OK. Pengaturan ini membuat satu JAR dengan semua dependensi.

      IntelliJ IDEA struktur proyek jar dari modul

    6. Tab Tata Letak Output mencantumkan semua jar yang termasuk dalam bagian proyek Maven. Anda dapat memilih dan menghapus jar yang tidak memiliki dependensi langsung dengan aplikasi Scala. Untuk aplikasi ini, yang Anda buat di sini, Anda dapat menghapus semua kecuali yang terakhir (output kompilasi SparkSimpleApp). Pilih jar yang akan dihapus lalu pilih simbol negatif - .

      `IntelliJ IDEA struktur proyek hapus output`

      Pastikan kotak centang Sertakan dalam build proyek dipilih. Opsi ini memastikan bahwa jar dibuat setiap kali proyek dibangun atau diperbarui. Pilih Terapkan lalu pilih OK.

    7. Untuk membuat jar, navigasi ke Build > Bangun Artefak > Bangun. Proyek ini akan dibangun dalam waktu sekitar 30 detik. Jar output dibuat di \out\artefak.

      IntelliJ IDEA artefak proyek output

Jalankan aplikasi pada kluster Apache Spark

Untuk menjalankan aplikasi pada kluster, Anda dapat menggunakan pendekatan berikut:

Bersihkan sumber daya

Jika Anda tidak akan terus menggunakan aplikasi ini, hapus kluster yang Anda buat dengan langkah-langkah berikut:

  1. Masuk ke portal Microsoft Azure.

  2. Dalam kotak Pencarian di bagian atas, ketik Microsoft Azure HDInsight.

  3. Pilih kluster HDInsight di bawah Layanan.

  4. Dalam daftar kluster HDInsight yang muncul, pilih ... di samping kluster yang Anda buat untuk tutorial ini.

  5. Pilih Hapus. Pilih Ya.

Cuplikan layar memperlihatkan cara menghapus kluster HDInsight melalui portal Microsoft Azure.

Langkah selanjutnya

Di artikel ini, Anda belajar cara membuat aplikasi scala Apache Spark. Lanjutkan ke artikel berikutnya untuk mempelajari cara menjalankan aplikasi ini pada kluster Spark HDInsight menggunakan Livy.