SSH aracılığıyla IntelliJ için Azure Toolkit ile HDInsight kümesinde Apache Spark uygulamalarında hata ayıklama

Bu makalede, HDInsight kümesindeki uygulamalarda uzaktan hata ayıklamak için Azure Toolkit for IntelliJ'de HDInsight Araçları'nı kullanma hakkında adım adım yönergeler sağlanır.

Önkoşullar

  • HDInsight üzerinde bir Apache Spark kümesi. Bkz . Apache Spark kümesi oluşturma.

  • Windows kullanıcıları için: Yerel Spark Scala uygulamasını bir Windows bilgisayarda çalıştırırken SPARK-2356'da açıklandığı gibi bir özel durum alabilirsiniz. Windows'ta WinUtils.exe eksik olduğundan özel durum oluşur.

    Bu hatayı çözmek için Winutils.exe C:\WinUtils\bin gibi bir konuma indirin. Ardından HADOOP_HOME ortam değişkenini ekleyin ve değişkenin değerini C:\WinUtils olarak ayarlayın.

  • IntelliJ IDEA (Community sürümü ücretsizdir.).

  • IntelliJ için Azure Toolkit.

  • IntelliJ için Scala eklentisi.

  • Bir SSH istemcisi. Daha fazla bilgi için bkz. SSH kullanarak HDInsight'a (Apache Hadoop) bağlanma.

Spark Scala uygulaması oluşturma

  1. IntelliJ IDEA'yı başlatın ve Yeni Proje Oluştur'u seçerek Yeni Proje penceresini açın.

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

  3. Ana pencereden Örneklerle Spark Projesi (Scala) seçeneğini belirleyin.

  4. Derleme aracı açılan listesinden aşağıdakilerden 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 .

    Intellij Create New Project Spark.

  5. İleri'yi seçin.

  6. Sonraki Yeni Proje penceresinde aşağıdaki bilgileri sağlayın:

    Özellik Açıklama
    Proje adı Bir ad girin. Bu kılavuzda kullanır.myApp
    Proje konumu Projenizi kaydetmek için istediğiniz konumu girin.
    Proje SDK'sı Boşsa 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 Spark 2.x.. seçeneğini belirleyin. Bu örnekte Spark 2.3.0 (Scala 2.11.8) kullanılır.

    Intellij New Project select Spark version.

  7. Bitir'i seçin. Projenin kullanılabilir duruma gelmesi birkaç dakika sürebilir. İlerleme durumu için sağ alt köşeyi izleyin.

  8. Projenizi genişletin ve src>ana>scala örneğine> gidin. SparkCore_WasbIOTest çift tıklayın.

Yerel çalıştırma gerçekleştirme

  1. SparkCore_WasbIOTest betiğinde betik düzenleyicisine sağ tıklayın ve ardından Yerel çalıştırmayı gerçekleştirmek için 'SparkCore_WasbIOTest' çalıştır'ı seçin.

  2. Yerel çalıştırma tamamlandıktan sonra çıkış dosyasının geçerli proje gezgini verilerinize>varsayılan olarak kaydedildiğini görebilirsiniz.

    Intellij Project local run result.

  3. Araçlarımız, yerel çalıştırma ve yerel hata ayıklama gerçekleştirdiğinizde varsayılan yerel çalıştırma yapılandırmasını otomatik olarak ayarlamış. Sağ üst köşedeki [HDInsight üzerinde Spark] XXX yapılandırmasını açın, HDInsight üzerinde Apache Spark altında zaten oluşturulmuş [HDInsight üzerinde Spark]XXX dosyasını görebilirsiniz. Yerel Olarak Çalıştır sekmesine geçin.

    Intellij Run debug configurations local run.

    • Ortam değişkenleri: HADOOP_HOME sistem ortamı değişkenini zaten C:\WinUtils olarak ayarladıysanız, el ile eklemeye gerek olmadığını otomatik olarak algılayabilir.
    • WinUtils.exe Konumu: Sistem ortam değişkenini ayarlamadıysanız, konumu düğmesine tıklayarak bulabilirsiniz.
    • İki seçenek arasından seçim yapmanız gerekir ve MacOS ve Linux'ta gerekli değildir.
  4. Yerel çalıştırma ve yerel hata ayıklama gerçekleştirmeden önce yapılandırmayı el ile de ayarlayabilirsiniz. Yukarıdaki ekran görüntüsünde artı işaretini (+ ) seçin. Ardından HDInsight üzerinde Apache Spark seçeneğini belirleyin. Kaydedilecek Ad, Ana sınıf adı bilgilerini girin, ardından yerel çalıştır düğmesine tıklayın.

Yerel hata ayıklama gerçekleştirme

  1. SparkCore_wasbloTest betiğini açın, kesme noktalarını ayarlayın.

  2. Betik düzenleyicisine sağ tıklayın ve yerel hata ayıklama gerçekleştirmek için Hata Ayıklama '[HDInsight'ta Spark]XXX' seçeneğini belirleyin.

Uzaktan çalıştırma gerçekleştirme

  1. Yapılandırmaları Düzenle'yi Çalıştır'a >gidin.... Bu menüden, uzaktan hata ayıklama için yapılandırmalar oluşturabilir veya düzenleyebilirsiniz.

  2. Çalıştır/Yapılandırmalarda Hata Ayıkla iletişim kutusunda artı işaretini ()+ seçin. Ardından HDInsight üzerinde Apache Spark seçeneğini belirleyin.

    Intellij Add new configuration.

  3. Kümede Uzaktan Çalıştır sekmesine geçin. Ad, Spark kümesi ve Ana sınıf adı bilgilerini girin. Ardından Gelişmiş yapılandırma (Uzaktan Hata Ayıklama) seçeneğine tıklayın. Araçlarımız Yürütücüler ile hata ayıklamayı destekler. numExectors, varsayılan değer 5'tir. 3'ten yüksek bir değer ayarlamasan iyi olur.

    Intellij Run debug configurations.

  4. Gelişmiş Yapılandırma (Uzaktan Hata Ayıklama) bölümünde Spark uzaktan hata ayıklamayı etkinleştir'i seçin. SSH kullanıcı adını girin ve ardından bir parola girin veya özel anahtar dosyası kullanın. Uzaktan hata ayıklama gerçekleştirmek istiyorsanız, bunu ayarlamanız gerekir. Yalnızca uzaktan çalıştırmayı kullanmak istiyorsanız ayarlamanıza gerek yoktur.

    Intellij Advanced Configuration enable spark remote debug.

  5. Yapılandırma artık sağladığınız adla kaydedilir. Yapılandırma ayrıntılarını görüntülemek için yapılandırma adını seçin. Değişiklik yapmak için Yapılandırmaları Düzenle'yi seçin.

  6. Yapılandırma ayarlarını tamamladıktan sonra projeyi uzak kümede çalıştırabilir veya uzaktan hata ayıklama gerçekleştirebilirsiniz.

    Intellij Debug Remote Spark Job Remote run button.

  7. Gönderme günlüklerinin sol panelde görünmediği Bağlantıyı Kes düğmesine tıklayın. Ancak, arka uçta çalışmaya devam eder.

    Intellij Debug Remote Spark Job Remote run result.

Uzaktan hata ayıklama gerçekleştirme

  1. Kesme noktalarını ayarlayın ve ardından Uzaktan hata ayıklama simgesine tıklayın. Uzaktan gönderimdeki fark, SSH kullanıcı adı/parolasının yapılandırılması gerektiğidir.

    Intellij Debug Remote Spark Job debug icon.

  2. Program yürütmesi hata noktasına ulaştığında, Hata Ayıklayıcı bölmesinde bir Sürücü sekmesi ve iki Yürütücü sekmesi görürsünüz. Kodu çalıştırmaya devam etmek için Programı Sürdür simgesini seçin; bu simge sonraki kesme noktasına ulaşır. Hata ayıklamak için hedef yürütücüsü bulmak için doğru Yürütücü sekmesine geçmeniz gerekir. Yürütme günlüklerini ilgili Konsol sekmesinde görüntüleyebilirsiniz.

    Intellij Debug Remote Spark Job Debugging tab.

Uzaktan hata ayıklama ve hata düzeltme gerçekleştirme

  1. İki kesme noktası ayarlayın ve ardından Hata Ayıkla simgesini seçerek uzaktan hata ayıklama işlemini başlatın.

  2. Kod ilk kesme noktasında durur ve parametre ve değişken bilgileri Değişkenler bölmesinde gösterilir.

  3. Devam etmek için Programı Sürdür simgesini seçin. Kod ikinci noktada durur. Özel durum beklendiği gibi yakalanmış.

    Intellij Debug Remote Spark Job throw error.

  4. Programı Sürdür simgesini yeniden seçin. HDInsight Spark Gönderimi penceresinde "iş çalıştırılamadı" hatası görüntülenir.

    Intellij Debug Remote Spark Job Error submission.

  5. IntelliJ hata ayıklama özelliğini kullanarak değişken değerini dinamik olarak güncelleştirmek için yeniden Hata Ayıkla'yı seçin. Değişkenler bölmesi yeniden görüntülenir.

  6. Hata Ayıkla sekmesinde hedefe sağ tıklayın ve ardından Değer Ayarla'yı seçin. Ardından değişken için yeni bir değer girin. Ardından değeri kaydetmek için Enter'ı seçin.

    Intellij Debug Remote Spark Job set value.

  7. Programı çalıştırmaya devam etmek için Programı Sürdür simgesini seçin. Bu kez hiçbir istisna yakalanmaz. Projenin herhangi bir özel durum olmadan başarıyla çalıştığını görebilirsiniz.

    Intellij Debug Remote Spark Job without exception.

Sonraki adımlar

Senaryolar

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

Araçlar ve uzantılar

Kaynakları yönetme