HDInsight kümesi için Apache Spark uygulamaları oluşturmak üzere Eclipse için Azure Toolkit kullanma

Scala'da yazılmış Apache Spark uygulamaları geliştirmek ve bunları doğrudan Eclipse IDE'den bir Azure HDInsight Spark kümesine göndermek için Eclipse için Azure Toolkit'te HDInsight Araçları'nı kullanın. HDInsight Araçları eklentisini birkaç farklı yolla kullanabilirsiniz:

  • HDInsight Spark kümesinde Scala Spark uygulaması geliştirmek ve göndermek için.
  • Azure HDInsight Spark küme kaynaklarınıza erişmek için.
  • Scala Spark uygulamasını yerel olarak geliştirmek ve çalıştırmak için.

Önkoşullar

Gerekli eklentileri yükleme

Azure Toolkit for Eclipse'i yükleme

Yükleme yönergeleri için bkz . Eclipse için Azure Toolkit'i Yükleme.

Scala eklentisini yükleme

Eclipse'i açtığınızda, HDInsight Araçları Scala eklentisini yükleyip yüklemediğiniz otomatik olarak algılar. Devam etmek için Tamam'ı seçin ve ardından Eclipse Market'ten eklentiyi yüklemek için yönergeleri izleyin. Yükleme tamamlandıktan sonra IDE'yi yeniden başlatın.

Automatic installation of the Scala plug-in.

Eklentileri onaylama

  1. Yardım>Eclipse Marketi'ne gidin....

  2. Yüklü öğeler sekmesini seçin.

  3. En azından şunu görmeniz gerekir:

    • Eclipse <için Azure Toolkit sürümü>.
    • Scala IDE <sürümü>.

Azure aboneliğinizde oturum açın

  1. Eclipse IDE'ye başlayın.

  2. Pencere>Diğer Görünümü>Göster'e gidin...>Oturum Aç...

  3. Görünümü Göster iletişim kutusunda Azure>Azure Gezgini'ne gidin ve Aç'ı seçin.

    Apache Spark Eclipse show view.

  4. Azure Gezgini'nde Azure düğümüne sağ tıklayın ve oturum aç'ı seçin.

  5. Azure Oturum Açma iletişim kutusunda kimlik doğrulama yöntemini seçin, Oturum aç'ı seçin ve oturum açma işlemini tamamlayın.

    Apache Spark Eclipse Azure Sign.

  6. Oturum açtıktan sonra Abonelikleriniz iletişim kutusunda kimlik bilgileriyle ilişkili tüm Azure abonelikleri listelenir. İletişim kutusunu kapatmak için Seç'e basın.

    Select Subscriptions dialog box.

  7. Aboneliğinizin altındaki HDInsight Spark kümelerini görmek için Azure Gezgini'nden Azure>HDInsight'a gidin.

    HDInsight Spark clusters in Azure Explorer3.

  8. Kümeyle ilişkili kaynakları (örneğin, depolama hesapları) görmek için bir küme adı düğümünü daha da genişletebilirsiniz.

    Expanding a cluster name to see resources.

Ambari tarafından yönetilen kullanıcı adını kullanarak normal bir kümeyi bağlayabilirsiniz. Benzer şekilde, etki alanına katılmış bir HDInsight kümesi için, etki alanını ve kullanıcı adını kullanarak bağlantı oluşturabilirsiniz; örneğin user1@contoso.com.

  1. Azure Gezgini'nden HDInsight'a sağ tıklayın ve Küme Bağla'yı seçin.

    Azure Explorer link cluster menu.

  2. Küme Adı, Kullanıcı Adı ve Parola girin, ardından Tamam'ı seçin. İsteğe bağlı olarak, Depolama Hesabı, Depolama Anahtarı girin ve depolama gezgininin sol ağaç görünümünde çalışması için Depolama Kapsayıcısı'nı seçin

    Link New HDInsight cluster dialog.

    Not

    Küme hem Azure aboneliğinde oturum açtıysa hem de Kümeye bağlıysa bağlı depolama anahtarını, kullanıcı adını ve parolayı kullanırız. Azure Explorer storage accounts.

    Yalnızca klavye kullanıcısı için, geçerli odak Depolama Tuşu'ndayken, iletişim kutusunda bir sonraki alana odaklanmak için Ctrl+SEKME tuşlarını kullanmanız gerekir.

  3. Bağlı kümeyi HDInsight altında görebilirsiniz. Artık bu bağlı kümeye bir uygulama gönderebilirsiniz.

    Azure Explorer hdi linked cluster.

  4. Ayrıca bir kümenin Azure Gezgini bağlantısını da kaldırabilirsiniz.

    Azure Explorer unlinked cluster.

HDInsight Spark kümesi için Spark Scala projesi ayarlama

  1. Eclipse IDE çalışma alanından Dosya>Yeni>Proje...'i seçin.

  2. Yeni Proje sihirbazında HDInsight üzerinde HDInsight Project>Spark (Scala) seçeneğini belirleyin. Sonra İleri'yi seçin.

    Selecting the Spark on HDInsight (Scala) project.

  3. Yeni HDInsight Scala Projesi iletişim kutusunda aşağıdaki değerleri sağlayın ve İleri'yi seçin:

    • Proje için bir ad girin.
    • JRE alanında Yürütme ortamı kullan JRE'nin JavaSE-1.7 veya üzeri olarak ayarlandığından emin olun.
    • Spark Kitaplığı alanında, Spark SDK'sını yapılandırmak için Maven kullan seçeneğini belirleyebilirsiniz. Aracımız Spark SDK ve Scala SDK için uygun sürümü tümleştirir. Ayrıca Spark SDK'sı ekle seçeneğini el ile seçebilir, Spark SDK'yı el ile indirebilir ve ekleyebilirsiniz.

    New HDInsight Scala Project dialog box.

  4. Sonraki iletişim kutusunda ayrıntıları gözden geçirin ve Son'u seçin.

HDInsight Spark kümesi için Scala uygulaması oluşturma

  1. Paket Gezgini'nden daha önce oluşturduğunuz projeyi genişletin. src'ye sağ tıklayın, Yeni Diğer...'i>seçin.

  2. Sihirbaz seçin iletişim kutusunda Scala Sihirbazları>Scala Nesnesi'ni seçin. Sonra İleri'yi seçin.

    Select a wizard Create a Scala Object.

  3. Yeni Dosya Oluştur iletişim kutusunda nesne için bir ad girin ve Son'u seçin. Bir metin düzenleyicisi açılır.

    New File Wizard Create New File.

  4. Metin düzenleyicisinde geçerli içeriği aşağıdaki kodla değiştirin:

    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")
        }
    }
    
  5. Uygulamayı bir HDInsight Spark kümesinde çalıştırın:

    a. Paket Gezgini'nden proje adına sağ tıklayın ve spark uygulamasını HDInsight'a gönder'i seçin.

    b. Spark Gönderimi iletişim kutusunda aşağıdaki değerleri sağlayın ve gönder'i seçin:

    • Küme Adı için uygulamanızı çalıştırmak istediğiniz HDInsight Spark kümesini seçin.

    • Eclipse projesinden bir yapıt seçin veya sabit sürücüden bir yapıt seçin. Varsayılan değer, Paket Gezgini'nden sağ tıkladığınız öğeye bağlıdır.

    • Ana sınıf adı açılan listesinde, gönderme sihirbazı projenizdeki tüm nesne adlarını görüntüler. Çalıştırmak istediğiniz birini seçin veya girin. Sabit sürücüden bir yapıt seçtiyseniz, ana sınıf adını el ile girmeniz gerekir.

    • Bu örnekteki uygulama kodu herhangi bir komut satırı bağımsız değişkeni gerektirmediğinden veya JAR'lere veya dosyalara başvurmadığından, kalan metin kutularını boş bırakabilirsiniz.

      Apache Spark Submission dialog box.

  6. Spark Gönderimi sekmesi ilerleme durumunu görüntülemeye başlamalıdır. Spark Gönderimi penceresindeki kırmızı düğmeyi seçerek uygulamayı durdurabilirsiniz. Bu uygulama çalıştırmasının günlüklerini, dünya simgesini (görüntüdeki mavi kutuyla gösterilir) seçerek de görüntüleyebilirsiniz.

    Apache Spark Submission window.

Azure Toolkit for Eclipse'te HDInsight Araçları'nı kullanarak HDInsight Spark kümelerine erişme ve kümelerini yönetme

HDInsight Araçları'nı kullanarak, iş çıkışına erişmek de dahil olmak üzere çeşitli işlemler gerçekleştirebilirsiniz.

İş görünümüne erişme

  1. Azure Gezgini'nde HDInsight'ı genişletin, ardından Spark kümesi adını genişletin ve İşler'i seçin.

    Azure Explorer Eclipse job view node.

  2. İşler düğümünü seçin. Java sürümü 1.8'den düşükse, HDInsight Araçları E(fx)clipse eklentisini yüklediğinizi otomatik olarak anımsatır. Devam etmek için Tamam'ı seçin ve ardından eclipse Market'ten yüklemek ve Eclipse'i yeniden başlatmak için sihirbazı izleyin.

    Install missing plugin E(fx)clipse.

  3. İşler düğümünden İş Görünümü'nü açın. Sağ bölmede Spark İşi Görünümü sekmesi, kümede çalıştırılan tüm uygulamaları görüntüler. Daha fazla ayrıntı görmek istediğiniz uygulamanın adını seçin.

    Apache Eclipse view job logs details.

    Ardından şu eylemlerden herhangi birini gerçekleştirebilirsiniz:

    • İş grafiğinin üzerine gelin. Çalışan iş hakkındaki temel bilgileri görüntüler. İş grafiğini seçtiğinizde her işin oluşturduğu aşamaları ve bilgileri görebilirsiniz.

      Apache Spark job graph stage info.

    • Driver Stderr, Driver Stdout ve Dizin Bilgileri gibi sık kullanılan günlükleri görüntülemek için Günlük sekmesini seçin.

      Apache Spark Eclipse job log info.

    • Pencerenin üst kısmındaki köprüleri seçerek Spark geçmişi kullanıcı arabirimini ve Apache Hadoop YARN kullanıcı arabirimini (uygulama düzeyinde) açın.

Küme için depolama kapsayıcıya erişme

  1. Kullanılabilir HDInsight Spark kümelerinin listesini görmek için Azure Gezgini'nde HDInsight kök düğümünü genişletin.

  2. Kümenin depolama hesabını ve varsayılan depolama kapsayıcısını görmek için küme adını genişletin.

    Storage account and default storage container.

  3. Kümeyle ilişkilendirilmiş depolama kapsayıcısı adını seçin. Sağ bölmede HVACOut klasörüne çift tıklayın. Uygulamanın çıkışını görmek için parça dosyalarından birini açın.

Spark geçmiş sunucusuna erişme

  1. Azure Gezgini'nde Spark kümenizin adına sağ tıklayın ve spark geçmişi kullanıcı arabirimini aç'ı seçin. İstendiğinde kümenin yönetici kimlik bilgilerini girin. Kümeyi hazırlarken bunları belirttiniz.

  2. Spark geçmişi sunucusu panosunda, çalıştırmayı yeni tamamladığınız uygulamayı aramak için uygulama adını kullanırsınız. Önceki kodda, kullanarak val conf = new SparkConf().setAppName("MyClusterApp")uygulama adını ayarlarsınız. Spark uygulamanızın adı MyClusterApp oldu.

Apache Ambari portalını başlatma

  1. Azure Gezgini'nde Spark kümenizin adına sağ tıklayın ve küme yönetim portalını (Ambari) aç'ı seçin.

  2. İstendiğinde kümenin yönetici kimlik bilgilerini girin. Kümeyi hazırlarken bunları belirttiniz.

Azure aboneliklerini yönetme

Varsayılan olarak, Eclipse için Azure Toolkit'teki HDInsight Aracı tüm Azure aboneliklerinizdeki Spark kümelerini listeler. Gerekirse, kümeye erişmek istediğiniz abonelikleri belirtebilirsiniz.

  1. Azure Gezgini'nde Azure kök düğümüne sağ tıklayıp Abonelikleri Yönet'i seçin.

  2. İletişim kutusunda, erişmek istemediğiniz aboneliğin onay kutularını temizleyin ve kapat'ı seçin. Azure aboneliğinizin oturumunu kapatmak istiyorsanız Oturumu Kapat'ı da seçebilirsiniz.

Spark Scala uygulamasını yerel olarak çalıştırma

Spark Scala uygulamalarını iş istasyonunuzda yerel olarak çalıştırmak için Azure Toolkit for Eclipse'te HDInsight Araçları'nı kullanabilirsiniz. Genellikle bu uygulamaların depolama kapsayıcısı gibi küme kaynaklarına erişmesi gerekmez ve bunları yerel olarak çalıştırıp test edebilirsiniz.

Önkoşul

Yerel Spark Scala uygulamasını bir Windows bilgisayarında çalıştırırken SPARK-2356'da açıklandığı gibi bir özel durumla karşınıza çıkabilir. Windows'da WinUtils.exe eksik olduğundan bu özel durum oluşur.

Bu hatayı çözmek için C:\WinUtils\bin gibi bir konuma Winutils.exe ve ardından ortam değişkenini HADOOP_HOME ekleyip değişkenin değerini C\WinUtils olarak ayarlamanız gerekir.

Yerel Spark Scala uygulaması çalıştırma

  1. Eclipse'i başlatın ve bir proje oluşturun. Yeni Proje iletişim kutusunda aşağıdaki seçimleri yapın ve İleri'yi seçin.

  2. Yeni Proje sihirbazında HDInsight'ta HDInsight Project>Spark Yerel Çalıştırma Örneği (Scala) seçeneğini belirleyin. Sonra İleri'yi seçin.

    New project selects a wizard dialog.

  3. Proje ayrıntılarını sağlamak için HDInsight Spark kümesi için Spark Scala projesi ayarlama bölümünde yer alan 3 ile 6 arasındaki adımları izleyin.

  4. Şablon, src klasörünün altına bilgisayarınızda yerel olarak çalıştırabileceğiniz bir örnek kod (LogQuery) ekler.

    Location of LogQuery local scala application.

  5. LogQuery.scala öğesine sağ tıklayın ve Farklı Çalıştır 1 Scala Uygulaması'yı> seçin. Konsol sekmesinde şuna benzer bir çıkış görünür:

    Spark application local run result.

Yalnızca okuyucu rolü

Kullanıcılar işi yalnızca okuyucu rolü izni olan bir kümeye gönderdiğinde Ambari kimlik bilgileri gerekir.

  1. Yalnızca okuyucu rol hesabıyla oturum açın.

  2. Azure Gezgini'nde, aboneliğinizdeki HDInsight kümelerini görüntülemek için HDInsight'ı genişletin. "Role:Reader" olarak işaretlenen kümelerin yalnızca okuyucu rol izni vardır.

    HDInsight Spark clusters in Azure Explorer role reader.

  3. Yalnızca okuyucu rolü iznine sahip kümeye sağ tıklayın. Kümeyi bağlamak için bağlam menüsünden Bu kümeyi bağla'ya tıklayın. Ambari kullanıcı adını ve parolasını girin.

    HDInsight Spark clusters in Azure Explorer link.

  4. Küme başarıyla bağlanırsa HDInsight yenilenir. Kümenin aşaması bağlanır.

    HDInsight Spark clusters in Azure Explorer linked.

  1. İşler düğümü'ne tıklayın, Küme İşi Erişimi Reddedildi penceresi açılır.

  2. Kümeyi bağlamak için Bu kümeyi bağla'ya tıklayın.

    HDInsight Spark clusters in Azure Explorer9.

  1. HDInsight Projesi oluşturun.

  2. Pakete sağ tıklayın. Ardından Spark Uygulamasını HDInsight'a Gönder'i seçin.

    HDInsight Spark clusters in Azure Explorer submit.

  3. Küme Adı için yalnızca okuyucu rolü izni olan bir küme seçin. Uyarı iletisi gösterilir. Kümeyi bağlamak için Bu kümeyi bağla'ya tıklayabilirsiniz.

    HDInsight Spark clusters in Azure Explorer link this.

Depolama Hesaplarını Görüntüle

  • Yalnızca okuyucu rolü iznine sahip kümeler için Hesaplar düğümüne Depolama tıklayın Depolama Erişim Reddedildi penceresi açılır.

    HDInsight Spark clusters in Azure Explorer storage.

    HDInsight Spark clusters in Azure Explorer denied.

  • Bağlı kümeler için, Depolama Hesapları düğümüne tıklayın Depolama Erişim Reddedildi penceresi açılır.

    HDInsight Spark clusters in Azure Explorer denied2.

Bilinen sorunlar

Bir Kümeyi Bağla'yı kullanırken, depolama kimlik bilgilerini sağlamanızı öneririm.

link cluster with storage credential eclipses.

İşleri göndermek için iki mod vardır. Depolama kimlik bilgileri sağlanırsa, işi göndermek için toplu iş modu kullanılır. Aksi takdirde etkileşimli mod kullanılır. Küme meşgulse aşağıdaki hatayı alabilirsiniz.

eclipse get error when cluster busy.

eclipse get error when cluster busy yarn.

Ayrıca bkz.

Senaryolar

Uygulama oluşturma ve çalıştırma

Araçlar ve uzantılar

Kaynakları yönetme