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ástroje sestavení vyberte jednu z následujících možností:

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

    Intellij Create New Project 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 k použití myApp.
    Umístění projektu Zadejte požadované umístění pro uložení projektu.
    Project SDK Pokud je prázdná, vyberte Nový... a přejděte na sadu 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).

    Intellij New Project select Spark version.

  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 k hlavní>ukázce scala>src.> Poklikejte na SparkCore_WasbIOTest.

Provedení místního spuštění

  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í uvidíte výstupní soubor, který se uloží do aktuálního výchozího data>Průzkumníka projektů.

    Intellij Project local run result.

  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ě spustit .

    Intellij Run debug configurations local run.

    • 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 místním spuštěním a místním laděním. 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, aby se provedlo místní ladění.

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

  1. Přejděte do části Spustit>konfiguraci úprav.... 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 Add new configuration.

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

    Intellij Run debug configurations.

  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.

    Intellij Advanced Configuration enable spark remote debug.

  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í.

    Intellij Debug Remote Spark Job Remote run button.

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

    Intellij Debug Remote Spark Job Remote run result.

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

  1. Nastavte zásadní body a 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ýjimka se zachytí podle očekávání.

    Intellij Debug Remote Spark Job throw error.

  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".

    Intellij Debug Remote Spark Job Error submission.

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

  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 .

    Intellij Debug Remote Spark Job set value.

  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 without exception.

Další kroky

Scénáře

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

Nástroje a rozšíření

Řízení zdrojů