Sdílet prostřednictvím


Ladění aplikací Apache Spark v clusteru HDInsight pomocí sady Azure Toolkit for IntelliJ prostřednictvím SSH

Tento článek obsahuje podrobné pokyny k použití nástrojů HDInsight v sadě Azure Toolkit for IntelliJ k vzdálenému ladění aplikací v clusteru HDInsight.

Požadavky

Vytvoření aplikace Spark Scala

  1. Spusťte IntelliJ IDEA a výběrem možnosti Vytvořit nový projekt otevřete okno Nový projekt.

  2. V levém podokně vyberte Apache Spark/HDInsight .

  3. V hlavním okně vyberte Projekt Sparku s ukázkami (Scala ).

  4. V rozevíracím seznamu Nástroj sestavení vyberte jednu z následujících možností:

    • Podpora průvodce vytvořením projektu pro Scala pomocí Maven
    • SBT pro správu závislostí a sestavování pro projekt Scala.

    IntelliJ Vytvořit nový projekt Spark.

  5. Vyberte Další.

  6. V dalším okně Nový projekt zadejte následující informace:

    Vlastnost Popis
    Název projektu Zadejte název. Tento návod s využitím myApp.
    Umístění projektu Zadejte požadované umístění pro uložení projektu.
    Project SDK Pokud je pole prázdné, vyberte Nový... a přejděte na JDK.
    Verze Sparku Průvodce vytvořením integruje správnou verzi sady Spark SDK a Scala SDK. Pokud je verze clusteru Spark nižší než 2.0, vyberte Spark 1.x. V opačném případě vyberte Spark 2.x.. V tomto příkladu se používá Spark 2.3.0 (Scala 2.11.8).

    Nový projekt IntelliJ vyberte verzi Sparku.

  7. Vyberte Dokončit. Než bude projekt dostupný, může to trvat několik minut. Sledujte průběh v pravém dolním rohu.

  8. Rozbalte projekt a přejděte do src>main>scala>sample. Poklikejte na SparkCore_WasbIOTest.

Spustit místně

  1. Ve skriptu SparkCore_WasbIOTest klikněte pravým tlačítkem myši na editor skriptů a vyberte možnost Spustit SparkCore_WasbIOTest pro místní spuštění.

  2. Po dokončení místního spuštění se výstupní soubor uloží do složky data>default ve vašem aktuálním Průzkumníku projektů.

    Výsledek místního spuštění projektu IntelliJ

  3. Naše nástroje nastavily výchozí konfiguraci místního spuštění automaticky při provádění místního spuštění a místního ladění. Otevřete konfiguraci [Spark ve službě HDInsight] XXX v pravém horním rohu, uvidíte [Spark ve službě HDInsight]XXX již vytvořený v Apache Sparku ve službě HDInsight. Přepněte na kartu Místní spuštění.

    Konfigurace spuštění a ladění IntelliJ pro místní běh

    • Proměnné prostředí: Pokud jste již nastavili systémovou proměnnou prostředí HADOOP_HOME na C:\WinUtils, může automaticky zjistit, že není nutné ručně přidávat.
    • WinUtils.exe Umístění: Pokud jste nenastavili systémovou proměnnou prostředí, můžete umístění najít kliknutím na tlačítko.
    • Stačí zvolit jednu ze dvou možností a nejsou potřeba v systémech macOS a Linux.
  4. Konfiguraci můžete také nastavit ručně před spuštěním a laděním na místní úrovni. Na předchozím snímku obrazovky vyberte znaménko plus (+). Pak vyberte možnost Apache Spark ve službě HDInsight . Zadejte informace pro název, název hlavní třídy, který chcete uložit, a potom klikněte na tlačítko místního spuštění.

Provádění místního ladění

  1. Otevřete skript SparkCore_wasbloTest a nastavte zarážky.

  2. Klikněte pravým tlačítkem myši na editor skriptů a vyberte možnost Ladit '[Spark ve službě HDInsight]XXX' pro místní ladění.

Provedení vzdáleného spuštění

  1. Přejděte do Spustit>Upravit konfigurace.... V této nabídce můžete vytvořit nebo upravit konfigurace pro vzdálené ladění.

  2. V dialogovém okně Spustit nebo ladit konfigurace vyberte znaménko plus (+). Pak vyberte možnost Apache Spark ve službě HDInsight .

    IntelliJ – Přidání nové konfigurace

  3. Přepněte na kartu Vzdálené spuštění v clusteru. Zadejte informace pro název, Spark cluster, a hlavní název třídy. Potom klikněte na pokročilou konfiguraci (vzdálené ladění). Naše nástroje podporují ladění pomocí exekutorů. numExecutors, výchozí hodnota je 5. Raději byste nenastavili vyšší než 3.

    IntelliJ Spusťte konfigurace ladění.

  4. V části Pokročilá konfigurace (vzdálené ladění) vyberte Povolit vzdálené ladění Sparku. Zadejte uživatelské jméno SSH a zadejte heslo nebo použijte soubor privátního klíče. Pokud chcete provést vzdálené ladění, musíte ho nastavit. Pokud chcete jenom použít vzdálené spuštění, nemusíte ho nastavovat.

    Rozšířená konfigurace IntelliJ umožňuje vzdálené ladění Sparku.

  5. Konfigurace se teď uloží s zadaným názvem. Pokud chcete zobrazit podrobnosti o konfiguraci, vyberte název konfigurace. Pokud chcete provést změny, vyberte Upravit konfigurace.

  6. Po dokončení nastavení konfigurace můžete projekt spustit na vzdáleném clusteru nebo provést vzdálené ladění.

    Tlačítko vzdáleného spuštění úlohy Spark v IntelliJ Debugu.

  7. Klikněte na tlačítko Odpojit, aby se protokoly odeslání nezobrazovaly v levém panelu. Stále ale běží na back-endu.

    Výsledek vzdáleného spuštění úlohy Sparku v IntelliJ Debug

Provádění vzdáleného ladění

  1. Nastavte body přerušení a poté klikněte na ikonu vzdáleného ladění. Rozdíl mezi vzdáleným odesláním spočívá v tom, že je potřeba nakonfigurovat uživatelské jméno a heslo SSH.

    IntelliJ Debug Remote Spark Job debug icon.

  2. Když provádění programu dosáhne bodu přerušení, zobrazí se karta Ovladač a dvě karty Exekutor v podokně ladicího programu . Výběrem ikony Pokračovat v programu pokračujte ve spuštění kódu, který pak dosáhne další zarážky. Pokud chcete najít cílový exekutor pro ladění, musíte přepnout na správnou kartu Exekutoru . Protokoly spuštění můžete zobrazit na odpovídající kartě Konzola .

    IntelliJ Debug Remote Spark Job Debugging tab.

Provádění vzdáleného ladění a opravy chyb

  1. Nastavte dva zásadní body a pak výběrem ikony Ladění spusťte proces vzdáleného ladění.

  2. Kód se zastaví v prvním bodu způsobujícího přerušení a informace o parametru a proměnné se zobrazí v podokně Proměnné .

  3. Pokračujte výběrem ikony Pokračovat v programu. Kód se zastaví ve druhém bodě. Výjimku se podařilo zachytit, jak se očekávalo.

    IntelliJ Debug Remote Spark Job vyvolá chybu.

  4. Znovu vyberte ikonu Pokračovat v programu. V okně odeslání Sparku služby HDInsight se zobrazí chyba "Spuštění úlohy se nezdařilo".

    Chyba odeslání vzdálené úlohy Spark při ladění v IntelliJ

  5. Pokud chcete dynamicky aktualizovat hodnotu proměnné pomocí funkce ladění IntelliJ, znovu vyberte Ladit . Podokno Proměnné se znovu zobrazí.

  6. Pravým tlačítkem myši klikněte na cíl na kartě Ladění a pak vyberte Nastavit hodnotu. Dále zadejte novou hodnotu proměnné. Potom tuto hodnotu uložte výběrem klávesy Enter .

    Hodnota sady úloh IntelliJ Debug Remote Spark

  7. Pokud chcete pokračovat ve spuštění programu, vyberte ikonu Pokračovat v programu. Tentokrát se nezachytí žádná výjimka. Vidíte, že se projekt úspěšně spustí bez jakýchkoli výjimek.

    IntelliJ Debug Remote Spark Job bez jakýchkoli chyb.

Další kroky

Scénáře

Vytvoření a spouštění aplikací

Nástroje a rozšíření

Řízení zdrojů