Öğretici: IntelliJ kullanarak HDInsight'ta Apache Spark için Scala Maven uygulaması oluşturma
Bu öğreticide, IntelliJ IDEA ile Apache Maven kullanarak Scala'da yazılmış bir Apache Spark uygulaması oluşturmayı öğreneceksiniz. Makalede derleme sistemi olarak Apache Maven kullanılır. Ve IntelliJ IDEA tarafından sağlanan Scala için mevcut bir Maven arketipiyle 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 aşağıdakilerin nasıl yapılacağı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
HDInsight üzerinde bir Apache Spark kümesi. Yönergeler için bkz. Azure HDInsight'ta Apache Spark kümeleri oluşturma.
Oracle Java Geliştirme seti. Bu öğreticide Java sürüm 8.0.202 kullanılır.
Bir Java IDE. Bu makalede IntelliJ IDEA Community 2018.3.4 kullanılır.
IntelliJ için Azure Toolkit. Bkz . IntelliJ için Azure Toolkit'i yükleme.
IntelliJ IDEA için Scala eklentisini yükleme
Scala eklentisini yüklemek için aşağıdaki adımları uygulayın:
IntelliJ IDEA’yı açın.
Hoş geldiniz ekranında Eklentileri Yapılandır'a >gidip Eklentiler penceresini açın.
Azure Toolkit for IntelliJ için Yükle'yi seçin.
Yeni pencerede öne çıkan Scala eklentisi için Yükle'yi seçin.
Eklenti başarıyla yüklendikten sonra IDE’yi yeniden başlatmanız gerekir.
Uygulama oluşturmak için IntelliJ kullanma
IntelliJ IDEA'yı başlatın ve Yeni Proje Oluştur'u seçerek Yeni Proje penceresini açın.
Sol bölmeden Apache Spark/HDInsight'ı seçin.
Ana pencerede Spark Projesi (Scala) öğesini seçin.
Derleme aracı açılan listesinden aşağıdaki değerlerden birini seçin:
- Scala için Maven proje oluşturma sihirbazı desteği.
- Scala projesi için bağımlılıkları yönetmeye ve oluşturmaya yönelik SBT .
İleri'yi seçin.
Yeni Proje penceresinde aşağıdaki bilgileri sağlayın:
Özellik Açıklama Proje adı Bir ad girin. Proje konumu Projenizi kaydetmek için konumu girin. Proje SDK'sı Bu alan, IDEA'nın ilk kullanımınızda boş olacaktır. Yeni... öğesini seçin ve JDK'nize gidin. Spark Sürümü Oluşturma sihirbazı, Spark SDK ve Scala SDK'sı için uygun sürümü tümleştirir. 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) kullanılır. Bitir'i seçin.
Tek başına Scala projesi oluşturma
IntelliJ IDEA'yı başlatın ve Yeni Proje Oluştur'u seçerek Yeni Proje penceresini açın.
Sol bölmeden Maven'i seçin.
Bir Proje SDK’sı belirtin. Boşsa, Yeni... öğesini seçin ve Java yükleme dizinine gidin.
Arketipten oluştur onay kutusunu seçin.
Arketipler listesinden öğesini seçin
org.scala-tools.archetypes:scala-archetype-simple
. Bu arketip doğru dizin yapısını oluşturur ve Scala programını yazmak için gerekli varsayılan bağımlılıkları indirir.İleri'yi seçin.
Yapıt Koordinatları'nın kapsamını genişletin. GroupId ve ArtifactId için ilgili değerleri sağlayın. Ad ve Konum otomatik olarak doldurulur. Bu öğreticide aşağıdaki değerler kullanılır:
- GroupId: com.microsoft.spark.example
- ArtifactId: SparkSimpleApp
İleri'yi seçin.
Ayarları doğrulayıp İleri’yi seçin.
Proje adını ve konumunu doğrulayıp Son’u seçin. Projenin içeri aktarılması birkaç dakika sürer.
Proje içeri aktarıldıktan sonra sol bölmeden SparkSimpleApp>src>test>scala com>microsoft>spark>örneğine> gidin. MySpec'e sağ tıklayın ve sil... öğesini seçin. Uygulama için bu dosyaya ihtiyacınız yoktur. İletişim kutusunda Tamam'ı seçin.
Sonraki adımlarda Spark Scala uygulamasının bağımlılıklarını tanımlamak için pom.xml güncelleştireceksiniz. Bu bağımlılıkların otomatik olarak indirilip çözümlenmesi için Maven'ı yapılandırmanız gerekir.
Dosya menüsünden Ayarlar'ı seçerek Ayarlar penceresini açın.
Ayarlar penceresinde Derleme, Yürütme, Dağıtım>Derleme Araçları>Maven>İçeri Aktarma'ya gidin.
Maven projelerini otomatik olarak içeri aktar onay kutusunu seçin.
Uygula’yı ve sonra Tamam’ı seçin. Ardından proje penceresine geri dönersiniz.
:::image type="content" source="./media/apache-spark-create-standalone-application/configure-maven-download.png" alt-text="Configure Maven for automatic downloads." border="true":::
Sol bölmeden src>main>scala>com.microsoft.spark.example adresine gidin ve App.scala dosyasını açmak için Uygulama'ya çift tıklayın.
Var olan örnek kodu aşağıdaki kodla değiştirin ve değişiklikleri kaydedin. Bu kod HVAC.csv verileri okur (tüm HDInsight Spark kümelerinde kullanılabilir). Altıncı sütunda yalnızca bir basamak içeren satırları alır. Ve çıktıyı küme için varsayılan depolama kapsayıcısı altında /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") } }
Sol bölmede pom.xml dosyasına çift tıklayın.
<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>
<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>
Save changes to pom.xml.
.jar dosyasını oluşturun. IntelliJ IDEA, proje yapıtı olarak JAR dosyası oluşturmayı sağlar. Aşağıdaki adımları uygulayın.
Dosya menüsünden Proje Yapısı... öğesini seçin.
Proje Yapısı penceresinden Yapıtlar'a >artı simgesi +>JAR>Bağımlılıkları olan modüllerden.... gidin.
Modüllerden JAR Oluştur penceresinde, Ana Sınıf metin kutusundaki klasör simgesini seçin.
Ana Sınıf Seç penceresinde varsayılan olarak görüntülenen sınıfı seçin ve ardından Tamam'ı seçin.
Modüllerden JAR Oluştur penceresinde hedef JAR'a ayıkla seçeneğinin belirlendiğinden emin olun ve ardından Tamam'ı seçin. Bu ayar, tüm bağımlılıklarla tek bir JAR oluşturur.
Çıktı Düzeni sekmesinde Maven projesine dahil edilen tüm jar'lar listelenir. Scala uygulamasının doğrudan bağımlılığı olmayan jar dosyalarını seçip silebilirsiniz. Burada oluşturduğunuz uygulama için, sonuncusu hariç tümünü kaldırabilirsiniz (SparkSimpleApp derleme çıkışı). Silinecek jar'ları seçin ve ardından negatif simgesini -seçin.
Proje derlemesine ekle onay kutusunun seçili olduğundan emin olun. Bu seçenek, proje her oluşturulduğunda veya güncelleştirildiğinde jar dosyasının oluşturulmasını sağlar. Uygula'yı ve ardından Tamam'ı seçin.
Jar dosyasını oluşturmak için Derleme Yapıtları> Derlemesi'ne >gidin. Proje yaklaşık 30 saniye içinde derlenir. Çıktı jar dosyası, \out\artifacts altında oluşturulur.
Uygulamayı Apache Spark kümesinde çalıştırma
Uygulamayı kümede çalıştırmak için aşağıdaki yaklaşımları kullanabilirsiniz:
Uygulama jar dosyasını kümeyle ilişkilendirilmiş Azure Depolama blob'a kopyalayın. Bunu yapmak için, bir komut satırı yardımcı programı olan AzCopy’yi kullanabilirsiniz. Verileri karşıya yüklemek için kullanabileceğiniz çok sayıda başka istemci de mevcuttur. Bunlar hakkında daha fazla bilgi için bkz . HDInsight'ta Apache Hadoop işleri için verileri karşıya yükleme.
Spark kümesine uzaktan bir uygulama işi göndermek için Apache Livy kullanın. HDInsight üzerinde Spark kümeleri, Spark işlerini uzaktan göndermek için REST uç noktalarını kullanıma sunan Livy’yi içerir. Daha fazla bilgi için bkz . HDInsight üzerinde Spark kümeleri ile Apache Livy kullanarak Apache Spark işlerini uzaktan gönderme.
Kaynakları temizleme
Bu uygulamayı kullanmaya devam etmeyecekseniz, aşağıdaki adımlarla oluşturduğunuz kümeyi silin:
Azure Portal’ında oturum açın.
Üstteki Arama kutusuna HDInsight yazın.
Hizmetler'in altında HDInsight kümeleri'ne tıklayın.
Görüntülenen HDInsight kümeleri listesinde, bu öğretici için oluşturduğunuz kümenin yanındaki ... öğesini seçin.
Sil'i seçin. Evet'i seçin.
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.