Öğretici: IntelliJ kullanarak HDInsight'ta Apache Spark scala Maven uygulaması oluşturma

Bu öğreticide, IntelliJ IDEA ile Apache Maven kullanarak Scala'da Apache Spark bir uygulama oluşturma hakkında bilgi edinebilirsiniz. Makalede derleme sistemi olarak Apache Maven lanmıştır. IntelliJ IDEA tarafından sağlanan Scala için mevcut bir Maven arketipi ile başlar. IntelliJ IDEA’da Scala uygulaması oluşturma işlemi aşağıdaki adımları içerir:

  • Derleme sistemi olarak Maven kullanma.
  • Spark modülü bağımlılıklarını çözümlemek için Proje Nesne Modeli (POM) dosyasını güncelleştirme.
  • Uygulamanızı Scala’da yazma.
  • HDInsight Spark kümelerine gönderilebilen bir jar dosyası oluşturma.
  • Livy kullanarak uygulamayı Spark kümesi üzerinde çalıştırma.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • IntelliJ IDEA için Scala eklentisini yükleme
  • IntelliJ kullanarak bir Scala Maven uygulaması geliştirme
  • Tek başına Scala projesi oluşturma

Önkoşullar

IntelliJ IDEA için Scala eklentisini yükleme

Scala eklentisini yüklemek için aşağıdaki adımları uygulayın:

  1. IntelliJ IDEA’yı açın.

  2. Hoş geldiniz ekranında Eklentileri Yapılandır'a > gidin ve Eklentiler penceresini açın.

    'IntelliJ IDEA scala eklentisini etkinleştir'

  3. Yeni pencerede öne çıkan Scala eklentisi için Yükle'yi seçin.

    'IntelliJ IDEA scala eklentisini yükleme'

  4. Eklenti başarıyla yüklendikten sonra IDE’yi yeniden başlatmanız gerekir.

Uygulama oluşturmak için IntelliJ kullanma

  1. IntelliJ IDEA'yi başlatarak Yeni Project Oluştur'Project açın.

  2. Sol Apache Spark/HDInsight'ı seçin.

  3. Ana Project Spark Project (Scala) öğesini seçin.

  4. Derleme aracı açılan listesinden aşağıdaki değerlerden birini seçin:

    • Scala proje oluşturma sihirbazı desteği için Maven.
    • Scala projesi için bağımlılıkları yönetmek ve bu projeyi inşak için SBT.

    IntelliJ Yeni Project iletişim kutusu

  5. İleri’yi seçin.

  6. Yeni Project penceresinde aşağıdaki bilgileri sağlar:

    Özellik Açıklama
    Proje adı Bir ad girin.
     Project Konum Projenizi kaydetmek için konumu girin.
    Project SDK İlk IDEA kullanımınız için bu alan boş olacaktır. Yeni... öğesini seçin ve JDK'nize gidin.
    Spark Sürümü Oluşturma sihirbazı, Spark SDK'sı ve Scala SDK'sı için uygun sürümü tümleştirin. Spark kümesi sürümü 2.0’dan eskiyse Spark 1.x seçeneğini belirleyin. Aksi takdirde, Spark2.x seçeneğini belirleyin. Bu örnekte Spark 2.3.0 (Scala 2.11.8) 2.

    IntelliJ IDEA Spark SDK'sı seçme

  7. Son'u seçin.

Tek başına Scala projesi oluşturma

  1. IntelliJ IDEA'yi başlatarak Yeni Project Oluştur'Project açın.

  2. Sol bölmeden Maven'ı seçin.

  3. Bir Proje SDK’sı belirtin. Boşsa Yeni... öğesini seçin ve Java yükleme dizinine gidin.

  4. Arketipten oluştur onay kutusunu seçin.

  5. Arketipler listesinden öğesini org.scala-tools.archetypes:scala-archetype-simple seçin. Bu arketip doğru dizin yapısını oluşturur ve Scala programı yazmak için gerekli varsayılan bağımlılıkları indirir.

    Yeni Uygulama penceresinde seçilen arketipi gösteren Project görüntüsü.

  6. İleri’yi seçin.

  7. Yapıt Koordinatlarını genişletin. GroupId ve ArtifactId için ilgili değerleri sağlar. Adı ve Konum otomatik olarak doldurulacak. Bu öğreticide aşağıdaki değerler kullanılır:

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

    Yeni Çalışma Zaman Penceresi'nin Yapıt Koordinatları seçeneğini Project görüntüsü.

  8. İleri’yi seçin.

  9. Ayarları doğrulayıp İleri’yi seçin.

  10. Proje adını ve konumunu doğrulayıp Son’u seçin. Projenin içeri aktarması birkaç dakika sürer.

  11. Proje içe aktarıldıktan sonra, sol bölmeden SparkSimpleApp > src > test > scala > com > microsoft > spark > örneğine gidin. MySpec seçeneğine sağ tıklayın ve Sil... öğesini seçin. Uygulama için bu dosyaya ihtiyacınız yok. İletişim kutusunda Tamam'ı seçin.

  12. Sonraki adımlarda, Spark Scala pom.xml bağımlılıkları tanımlamak için uygulamayı güncelleştirin. Bu bağımlılıkların otomatik olarak indirilecek ve çözülecek olması için Maven'ı yapılandırmalısiniz.

  13. Dosya menüsünden Dosya'Ayarlar'ı seçerek Ayarlar açın.

  14. Uygulama Ayarlar, Derleme, Yürütme, Dağıtım Derleme Araçları Maven İçeri > > Aktarma'ya > gidin.

  15. Maven projelerini otomatik olarak içeri aktar onay kutusunu seçin.

  16. Uygula’yı ve sonra Tamam’ı seçin. Ardından proje penceresine geri döndürülürsiniz.

    Maven’i otomatik yüklemeler için yapılandırma

  17. Sol bölmeden src > main > scala com.microsoft.spark.example adresine gidin ve App.scala'yıaçmak için > Uygulama'ya çift tıklayın.

  18. Var olan örnek kodu aşağıdaki kodla değiştirin ve değişiklikleri kaydedin. Bu kod, veri kümesinden verileri HVAC.csv (tüm HDInsight Spark kümelerde kullanılabilir). Altıncı sütunda yalnızca bir basamak içeren satırları alın. Ayrıca çıktıyı küme için varsayılan depolama kapsayıcısı altındaki /HVACOut'a yazar.

    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. Sol bölmede pom.xml dosyasına çift tıklayın.

  20. <project>\<properties> içinde aşağıdaki segmentleri ekleyin:

    <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. <project>\<dependencies> içinde aşağıdaki segmentleri ekleyin:

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

    pom.xml dosyasında yapılan değişiklikleri kaydedin.

  22. .jar dosyasını oluşturun. IntelliJ IDEA, proje yapıtı olarak JAR dosyası oluşturmayı sağlar. Aşağıdaki adımları uygulayın.

    1. dosya menüsünde Project yapısı... öğesini seçin.

    2. Project yapısı penceresinde, > > > bağımlılıklar içeren modüllerden artı sembol + JAR Artifacts gidin...

      ' IntelliJ fıkır proje yapısı jar Ekle '

    3. MODÜLLERDEN jar oluştur penceresinde, ana sınıf metin kutusunda klasör simgesini seçin.

    4. Ana Sınıf Seç penceresinde, varsayılan olarak görüntülenen sınıfı seçin ve ardından Tamam' ı seçin.

      ' IntelliJ fıkır proje yapısı Sınıf Seç '

    5. MODÜLLERDEN jar oluştur penceresinde, hedef jar 'e Ayıkla seçeneğinin seçili olduğundan emin olun ve ardından Tamam' ı seçin. Bu ayar, tüm bağımlılıklarla tek bir JAR oluşturur.

      IntelliJ fıkır modülünden proje yapısı jar

    6. Çıkış düzeni sekmesi, Maven projesinin bir parçası olarak dahil olan tüm jar dosyaları dışındaki türlerini listeler. Scala uygulamasının doğrudan bağımlılığı olmayan jar dosyalarını seçip silebilirsiniz. Uygulama için, burada oluşturduğunuz son bir tane (basit Simpleapp derleme çıkışı) ekleyebilirsiniz. Silinecek jar dosyaları dışındaki ' ı seçin ve ardından negatif sembolü seçin - .

      ' IntelliJ fıkır proje yapısı çıktıyı Sil '

      Proje derlemesi 'Ne dahil et onay kutusunun işaretli olduğundan emin olun. Bu seçenek, proje oluşturulduğu veya güncelleştirildiği her seferinde jar 'in oluşturulmasını sağlar. Uygula ' yı ve ardından Tamam' ı seçin.

    7. jar 'yi oluşturmak için derleme > derleme Artifacts > derlemesi' ne gidin. Projenin yaklaşık 30 saniye içinde derlenmesi gerekir. Çıktı jar dosyası, \out\artifacts altında oluşturulur.

      IntelliJ fıkır proje yapısı çıkışı

Apache Spark kümesinde uygulamayı çalıştırma

Uygulamayı kümede çalıştırmak için aşağıdaki yaklaşımları kullanabilirsiniz:

Kaynakları temizleme

Bu uygulamayı kullanmaya devam etmeyecekecekseniz, oluşturduğunuz kümeyi aşağıdaki adımlarla silin:

  1. Azure portalında oturum açın.

  2. Üstteki arama kutusuna HDInsight yazın.

  3. Hizmetler altında HDInsight kümeleri ' ni seçin.

  4. Görüntülenen HDInsight kümeleri listesinde, bu öğretici için oluşturduğunuz kümenin yanındaki ... seçeneğini belirleyin.

  5. Sil’i seçin. Evet’i seçin.

Azure portal aracılığıyla bir HDInsight kümesinin nasıl silineceğini gösteren ekran görüntüsü.

Sonraki adım

Bu makalede, Apache Spark Scala uygulaması oluşturmayı öğrendiniz. Bu uygulamayı Livy kullanarak bir HDInsight Spark kümesinde çalıştırmayı öğrenmek için sonraki makaleye ilerleyin.