Debugowanie aplikacji platformy Apache Spark w klastrze usługi HDInsight przy użyciu zestawu narzędzi Azure Toolkit for IntelliJ za pośrednictwem protokołu SSH

Ten artykuł zawiera szczegółowe wskazówki dotyczące używania narzędzi hdInsight w zestawie narzędzi Azure Toolkit for IntelliJ do zdalnego debugowania aplikacji w klastrze usługi HDInsight.

Wymagania wstępne

Tworzenie aplikacji Spark Scala

  1. Uruchom środowisko IntelliJ IDEA i wybierz pozycję Create New Project (Utwórz nowy projekt), aby otworzyć okno New Project (Nowy projekt).

  2. Wybierz pozycję Apache Spark/HDInsight w okienku po lewej stronie.

  3. Wybierz pozycję Projekt Spark z przykładami (Scala) w oknie głównym.

  4. Z listy rozwijanej Build tool (Narzędzie kompilacji), wybierz jedną z następujących pozycji:

    • Maven — w celu obsługi kreatora tworzenia projektu Scala.
    • SBT — na potrzeby zarządzania zależnościami i kompilacji projektu Scala.

    Intellij Create New Project Spark.

  5. Wybierz Dalej.

  6. W następnym oknie Nowy projekt podaj następujące informacje:

    Właściwości opis
    Nazwa projektu Wprowadź nazwę. W tym przewodniku użyto metody myApp.
    Lokalizacja projektu Wprowadź żądaną lokalizację do zapisania projektu.
    Zestaw SDK projektu Jeśli pole jest puste, wybierz pozycję Nowy... i przejdź do zestawu JDK.
    Wersja platformy Spark Kreator tworzenia integruje poprawną wersję dla zestawów Spark SDK i Scala SDK. Jeśli wersja klastra Spark jest starsza niż 2.0, wybierz wartość Spark 1.x. W przeciwnym razie wybierz pozycję Spark 2.x.. W tym przykładzie używana jest wersja Spark 2.3.0 (Scala 2.11.8).

    Intellij New Project select Spark version.

  7. Wybierz Zakończ. Udostępnienie projektu może potrwać kilka minut. Obejrzyj prawy dolny róg, aby uzyskać postęp.

  8. Rozwiń projekt i przejdź do głównego>przykładu src>scala.> Kliknij dwukrotnie SparkCore_WasbIOTest.

Wykonywanie lokalnego przebiegu

  1. W skryscie SparkCore_WasbIOTest kliknij prawym przyciskiem myszy edytor skryptów, a następnie wybierz opcję Uruchom "SparkCore_WasbIOTest", aby wykonać lokalne uruchomienie.

  2. Po zakończeniu uruchamiania lokalnego możesz zobaczyć plik wyjściowy zapisany w bieżącym widoku danych> eksploratora projektów.

    Intellij Project local run result.

  3. Nasze narzędzia automatycznie ustawiają domyślną konfigurację uruchamiania lokalnego podczas lokalnego uruchamiania i lokalnego debugowania. Otwórz konfigurację [Spark w usłudze HDInsight] XXX w prawym górnym rogu. Zobaczysz już środowisko [Spark w usłudze HDInsight]XXX utworzone w usłudze Apache Spark w usłudze HDInsight. Przejdź do karty Uruchamianie lokalne.

    Intellij Run debug configurations local run.

    • Zmienne środowiskowe: jeśli ustawisz już zmienną środowiskową systemu HADOOP_HOME na C:\WinUtils, może automatycznie wykryć, że nie trzeba ręcznie dodawać.
    • WinUtils.exe Lokalizacja: jeśli nie ustawiono zmiennej środowiskowej systemu, możesz znaleźć lokalizację, klikając jego przycisk.
    • Wystarczy wybrać jedną z dwóch opcji i nie są one potrzebne w systemach MacOS i Linux.
  4. Konfigurację można również ustawić ręcznie przed uruchomieniem lokalnym i debugowaniem lokalnym. Na powyższym zrzucie ekranu wybierz znak plus (+). Następnie wybierz opcję Apache Spark w usłudze HDInsight . Wprowadź informacje w polach Nazwa, Główna nazwa klasy do zapisania, a następnie kliknij przycisk uruchamiania lokalnego.

Wykonywanie debugowania lokalnego

  1. Otwórz skrypt SparkCore_wasbloTest, ustaw punkty przerwania.

  2. Kliknij prawym przyciskiem myszy edytor skryptów, a następnie wybierz opcję Debuguj "[Spark w usłudze HDInsight]XXX" , aby przeprowadzić lokalne debugowanie.

Wykonywanie zdalnego uruchamiania

  1. Przejdź do pozycji Uruchom>konfiguracje edycji.... Z tego menu można utworzyć lub edytować konfiguracje na potrzeby zdalnego debugowania.

  2. W oknie dialogowym Konfiguracje uruchamiania/debugowania wybierz znak plus (+). Następnie wybierz opcję Apache Spark w usłudze HDInsight .

    Intellij Add new configuration.

  3. Przejdź do zdalnego uruchamiania na karcie Klaster . Wprowadź informacje o nazwach, klastrze Spark i nazwie klasy Main. Następnie kliknij pozycję Konfiguracja zaawansowana (debugowanie zdalne). Nasze narzędzia obsługują debugowanie za pomocą funkcji wykonawczej. Wartość domyślna numExectors to 5. Lepiej nie ustawić wyższych niż 3.

    Intellij Run debug configurations.

  4. W części Konfiguracja zaawansowana (debugowanie zdalne) wybierz pozycję Włącz zdalne debugowanie platformy Spark. Wprowadź nazwę użytkownika SSH, a następnie wprowadź hasło lub użyj pliku klucza prywatnego. Jeśli chcesz wykonać debugowanie zdalne, musisz go ustawić. Nie ma potrzeby ustawiania go, jeśli chcesz używać zdalnego uruchamiania.

    Intellij Advanced Configuration enable spark remote debug.

  5. Konfiguracja jest teraz zapisywana przy użyciu podanej nazwy. Aby wyświetlić szczegóły konfiguracji, wybierz nazwę konfiguracji. Aby wprowadzić zmiany, wybierz pozycję Edytuj konfiguracje.

  6. Po zakończeniu ustawień konfiguracji można uruchomić projekt względem klastra zdalnego lub przeprowadzić zdalne debugowanie.

    Intellij Debug Remote Spark Job Remote run button.

  7. Kliknij przycisk Rozłącz, że dzienniki przesyłania nie są wyświetlane w panelu po lewej stronie. Jednak nadal działa na zapleczu.

    Intellij Debug Remote Spark Job Remote run result.

Wykonywanie zdalnego debugowania

  1. Skonfiguruj punkty przerwania, a następnie kliknij ikonę Debugowanie zdalne. Różnica w przypadku przesyłania zdalnego polega na tym, że należy skonfigurować nazwę użytkownika/hasło protokołu SSH.

    Intellij Debug Remote Spark Job debug icon.

  2. Gdy wykonanie programu osiągnie punkt przerwania, w okienku Debuger zostanie wyświetlona karta Sterownik i dwie karty Funkcji wykonawczej. Wybierz ikonę Wznów program , aby kontynuować uruchamianie kodu, który następnie osiąga następny punkt przerwania. Musisz przełączyć się na prawidłową kartę Wykonawca, aby znaleźć docelową funkcję wykonawcą w celu debugowania. Dzienniki wykonywania można wyświetlić na odpowiedniej karcie Konsola .

    Intellij Debug Remote Spark Job Debugging tab.

Wykonywanie zdalnego debugowania i naprawiania usterek

  1. Skonfiguruj dwa punkty przerwania, a następnie wybierz ikonę Debuguj , aby rozpocząć proces zdalnego debugowania.

  2. Kod zatrzymuje się w pierwszym punkcie przerwania, a informacje o parametrach i zmiennych są wyświetlane w okienku Zmienne .

  3. Wybierz ikonę Wznów program , aby kontynuować. Kod zatrzymuje się w drugim punkcie. Wyjątek jest przechwycony zgodnie z oczekiwaniami.

    Intellij Debug Remote Spark Job throw error.

  4. Ponownie wybierz ikonę Wznów program . W oknie przesyłania platformy Spark w usłudze HDInsight zostanie wyświetlony błąd "uruchomienie zadania nie powiodło się".

    Intellij Debug Remote Spark Job Error submission.

  5. Aby dynamicznie aktualizować wartość zmiennej przy użyciu funkcji debugowania IntelliJ, wybierz ponownie pozycję Debuguj . Zostanie ponownie wyświetlone okienko Zmienne .

  6. Kliknij prawym przyciskiem myszy element docelowy na karcie Debugowanie , a następnie wybierz pozycję Ustaw wartość. Następnie wprowadź nową wartość zmiennej. Następnie wybierz klawisz Enter, aby zapisać wartość.

    Intellij Debug Remote Spark Job set value.

  7. Wybierz ikonę Wznów program , aby kontynuować uruchamianie programu. Tym razem nie zostanie przechwycony żaden wyjątek. Możesz zobaczyć, że projekt działa pomyślnie bez żadnych wyjątków.

    Intellij Debug Remote Spark Job without exception.

Następne kroki

Scenariusze

Tworzenie i uruchamianie aplikacji

Narzędzia i rozszerzenia

Zarządzanie zasobami