Bagikan melalui


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

Dalam tutorial ini, Anda mempelajari 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 melibatkan langkah-langkah berikut:

  • Gunakan Maven sebagai sistem build.
  • Perbarui file Project Object Model (POM) untuk menyelesaikan dependensi modul Spark.
  • Tulis aplikasi Anda di Scala.
  • Buat file jar yang dapat dikirimkan ke kluster HDInsight Spark.
  • Jalankan aplikasi pada kluster Spark menggunakan Livy.

Dalam tutorial ini, Anda mempelajari cara:

  • Menginstal plugin Scala untuk IntelliJ IDEA
  • Menggunakan IntelliJ untuk mengembangkan aplikasi Scala Maven
  • Membuat proyek Scala mandiri

Prasyarat

Menginstal plugin Scala untuk IntelliJ IDEA

Lakukan langkah-langkah berikut untuk menginstal plugin Scala:

  1. Buka IntelliJ IDEA.

  2. Pada layar selamat datang, navigasikan ke Konfigurasi>Plugin untuk membuka jendela Plugin .

    Cuplikan layar memperlihatkan Layar Selamat Datang IntelliJ.

  3. Pilih Instal untuk Azure Toolkit untuk IntelliJ.

    Cuplikan layar memperlihatkan IntelliJ Azure Tool Kit.

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

    Cuplikan layar memperlihatkan Plugin IntelliJ Scala.

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

Menggunakan IntelliJ untuk membuat aplikasi

  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 tarik-turun Alat build, pilih salah satu nilai berikut:

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

    Cuplikan layar memperlihatkan buat aplikasi.

  5. Pilih Selanjutnya.

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

    Harta benda Deskripsi
    Nama proyek Masukkan nama.
    Lokasi proyek Masukkan lokasi untuk menyimpan proyek Anda.
    SDK Proyek Bidang ini akan kosong pada penggunaan IDEA pertama Anda. Pilih Baru... dan navigasi 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 IDEA Memilih Spark SDK.

  7. Pilih Selesai.

Membuat 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 Project SDK. Jika kosong, pilih Baru... dan navigasikan ke direktori penginstalan 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 memperlihatkan arketipe yang dipilih di jendela Proyek Baru.

  6. Pilih Selanjutnya.

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

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

    Cuplikan layar memperlihatkan opsi Koordinat Artefak di jendela Proyek Baru.

  8. Pilih Selanjutnya.

  9. Verifikasi pengaturan lalu pilih Berikutnya.

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

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

  12. Di langkah selanjutnya, Anda memperbarui pom.xml untuk menentukan dependensi untuk aplikasi Spark Scala. Agar dependensi tersebut diunduh dan diselesaikan secara otomatis, Anda harus mengonfigurasi Maven.

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

  14. Dari jendela Pengaturan , navigasikan ke Build, Execution, Deployment>Build Tools>Maven>Importing.

  15. Pilih kotak centang Impor proyek Maven secara otomatis .

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

    :::image type="content" source="./media/apache-spark-create-standalone-application/configure-maven-download.png" alt-text="Configure Maven for automatic downloads." border="true":::
    
  17. Dari panel kiri, navigasi ke src>main>scala>com.microsoft.spark.example, lalu klik dua kali Aplikasi 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 HDInsight Spark). Mengambil baris yang hanya memiliki satu digit di kolom keenam. Dan menulis output ke /HVACOut di bawah kontainer penyimpanan default untuk kluster.

    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>
    
    Save changes to pom.xml.
    
  22. Buat 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, pindah ke Artefak>simbol plus +>JAR>Dari modul dengan dependensi....

      'Struktur proyek IntelliJ IDEA tambahkan 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.

      'Struktur proyek IntelliJ IDEA 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.

      Struktur proyek IntelliJ IDEA dari file JAR modul.

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

      `Hapus output struktur proyek IntelliJ IDEA`.

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

    7. Untuk membuat file jar, navigasikan ke Build>Build Artefak>Build. Proyek akan dikompilasi dalam waktu sekitar 30 detik. Jar output dibuat di bawah \out\artifacts.

      Hasil artefak proyek IntelliJ IDEA.

Jalankan aplikasi pada kluster Apache Spark

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

Membersihkan sumber daya

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

  1. Masuk ke portal Azure.

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

  3. Pilih kluster Microsoft Azure HDInsight di 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 berikutnya

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