Udostępnij za pomocą


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 (Tworzenie nowego projektu 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 katalogu JDK.
    Wersja Spark Kreator tworzenia integruje odpowiednią wersję zestawu SDK dla Spark i Scala. 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 wybierz wersję Spark.

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

  8. Rozwiń projekt i przejdź do src>main>scala>sample. Kliknij dwukrotnie SparkCore_WasbIOTest.

Wykonaj lokalny przebieg

  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 lokalnego uruchomienia zobaczysz, że plik wyjściowy został zapisany w bieżącym eksploratorze projektów data>default.

    Wynik lokalnego uruchomienia projektu IntelliJ.

  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, aby zobaczyć już utworzone [Spark w usłudze HDInsight]XXX w ramach usługi Apache Spark w usłudze HDInsight. Przejdź do karty Lokalne Uruchamianie.

    Uruchamianie konfiguracji debugowania środowiska IntelliJ w środowisku lokalnym.

    • 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 Uruchom>Edytuj konfiguracje.... 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 Dodaj nową konfigurację.

  3. Przejdź do zakładki Uruchamianie zdalne w klastrze. Wprowadź informacje dotyczące nazwy, klastra Spark i nazwy głównej klasy. Następnie kliknij pozycję Konfiguracja zaawansowana (debugowanie zdalne). Nasze narzędzia obsługują debugowanie za pomocą Executors. Wartość domyślna numExecutors to 5. Lepiej nie ustawiaj wyżej niż 3.

    IntelliJ Run debug configurations (Uruchamianie konfiguracji debugowania intelliJ).

  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.

    Zaawansowana konfiguracja IntelliJ umożliwia zdalne debugowanie platformy Spark.

  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.

    Przycisk zdalnego debugowania i uruchamiania zadania Spark w IntelliJ.

  7. Kliknij przycisk Rozłącz, aby dzienniki przesyłania nie były wyświetlane w panelu po lewej stronie. Jednak nadal działa na backendzie.

    Wynik zdalnego uruchomienia zdalnego zadania Spark debugowanego w IntelliJ.

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.

    Ikona debugowania zdalnego zadania platformy Spark w środowisku IntelliJ.

  2. Gdy wykonanie programu osiągnie punkt przerwania, w okienku Debuger zobaczysz kartę Sterownik i dwie karty Executor. 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źć docelowego wykonawcę do debugowania. Dzienniki wykonywania można wyświetlić na odpowiedniej karcie Konsola .

    Karta Debugowanie zdalnego zadania Spark w IntelliJ.

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 wywołał błąd przy debugowaniu zdalnego zadania Spark.

  4. Ponownie wybierz ikonę Wznów program . W oknie HDInsight Spark Submission jest wyświetlany błąd "uruchomienie zadania nie powiodło się".

    Przesyłanie błędu związanego z uruchomieniem zdalnego zadania debugowania Spark w IntelliJ.

  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 Enter, aby zapisać wartość.

    Ustawienie wartości dla zdalnego zadania Spark w debugowaniu IntelliJ.

  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 zdalne zadanie Spark bez błędów.

Następne kroki

Scenariusze

Tworzenie i uruchamianie aplikacji

Narzędzia i rozszerzenia

Zarządzanie zasobami