Aracılığıyla paylaş


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.

Scala eklentisinin otomatik yüklemesi.

Eklentileri onaylama

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

  2. Yüklü 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 gösteri görünümü.

  4. Azure Gezgini'ndeAzure 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 İşareti.

  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.

    Abonelikler iletişim kutusunu seçin.

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

    Azure Explorer3'te HDInsight Spark kümeleri.

  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.

    Kaynakları görmek için küme adını genişletme.

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'ndenHDInsight'a sağ tıklayın ve Küme Bağla'yı seçin.

    Azure Gezgini bağlantı kümesi menüsü.

  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

    Yeni HDInsight kümesi iletişim kutusunu bağlayın.

    Uyarı

    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 depolama hesapları.

    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 Gezgini hdi bağlı kümesi.

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

    Azure Gezgini bağlantısı kesilmiş küme.

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 Project>HDInsight üzerinde Spark (Scala) seçeneğini belirleyin. Sonra İleri'yi seçin.

    HDInsight üzerinde Spark (Scala) projesini seçme.

  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'ninJavaSE-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.

    Yeni HDInsight Scala Projesi iletişim kutusu.

  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, YeniDiğer...'i> seçin.

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

    Bir sihirbaz seçin Scala Nesnesi Oluşturun.

  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.

    Yeni Dosya Sihirbazı Yeni Dosya Oluştur.

  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 Gönderimi iletişim kutusu.

  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 Gönderimi penceresi.

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'ndeHDInsight'ı genişletin, ardından Spark kümesi adını genişletin ve İşler'i seçin.

    Azure Gezgini Eclipse iş görünümü düğümü.

  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.

    Eksik eklenti E(fx)clipse'i yükleyin.

  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 iş günlüklerinin ayrıntılarını görüntüler.

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

    • İş grafiğinin üzerine fareyi getirin. Çalışmakta olan işlem hakkındaki temel bilgileri gösterir. İş grafiğini seçtiğinizde her işin oluşturduğu aşamaları ve bilgileri görebilirsiniz.

      Apache Spark iş grafı aşama bilgileri.

    • 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 iş günlüğü bilgileri.

    • 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ısına eriş

  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.

    Depolama hesabı ve varsayılan depolama kapsayıcısı.

  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 History UI'yi 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, val conf = new SparkConf().setAppName("MyClusterApp") kullanarak 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 ardından Open Cluster Management Portal (Ambari)'yi 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'ta 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 Projesi>Yerel Spark Çalıştırma Örneği (Scala) seçeneğini belirleyin. Sonra İleri'yi seçin.

    Yeni proje bir sihirbaz iletişim kutusu seçer.

  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.

    LogQuery yerel scala uygulamasının konumu.

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

    Spark uygulaması yerel çalıştırma sonucu.

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.

    Azure Gezgini rol okuyucusunda HDInsight Spark kümeleri.

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

    Azure Gezgini'nde HDInsight Spark kümeleri bağlantısı.

  4. Küme başarıyla bağlanırsa HDInsight yenilenir. Kümenin aşaması bağlantılı hale gelecek.

    Azure Gezgini'ndeki HDInsight Spark kümeleri birbirine bağlıdır.

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

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

    Azure Explorer9'da HDInsight Spark kümeleri.

  1. HDInsight Projesi oluşturun.

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

    Azure Gezgini'ndeki HDInsight Spark kümeleri gönderilir.

  3. Küme Adı için yalnızca okuyucu rolü izni olan bir küme seçin. Uyarı iletisi çıkar. Küme bağlantısı kurmak için bu kümeyi bağla'ya tıklayabilirsiniz.

    Azure Gezgini'ndeki HDInsight Spark kümeleri bunu bağlar.

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

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

    Azure Gezgini'nde depolanan HDInsight Spark kümeleri.

    Azure Gezgini'ndeki HDInsight Spark kümeleri reddedildi.

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

    Azure Gezgini'ndeki HDInsight Spark kümeleri reddedildi2.

Bilinen sorunlar

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

Depolama kimlik bilgileri ile kümeyi

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

küme meşgul olduğunda Eclipse hata veriyor.

Küme meşgul olduğunda Eclipse YARN hatası alıyor.

Ayrıca bkz.

Senaryo

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

Araçlar ve uzantılar

Kaynakları yönetme