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
Klaster Apache Spark w usłudze HDInsight. Zobacz Tworzenie klastra Apache Spark.
W przypadku użytkowników systemu Windows: podczas uruchamiania lokalnej aplikacji Spark Scala na komputerze z systemem Windows może wystąpić wyjątek, jak wyjaśniono w artykule SPARK-2356. Wyjątek występuje, ponieważ w systemie Windows brakuje WinUtils.exe.
Aby rozwiązać ten błąd, pobierz Winutils.exe do lokalizacji, takiej jak C:\WinUtils\bin. Następnie dodaj zmienną środowiskową HADOOP_HOME i ustaw wartość zmiennej na C:\WinUtils.
IntelliJ IDEA (Wersja Community jest bezpłatna).
Klient SSH. Aby uzyskać więcej informacji, zobacz Łączenie się z usługą HDInsight (Apache Hadoop) przy użyciu protokołu SSH.
Tworzenie aplikacji Spark Scala
Uruchom środowisko IntelliJ IDEA i wybierz pozycję Create New Project (Utwórz nowy projekt), aby otworzyć okno New Project (Nowy projekt).
Wybierz pozycję Apache Spark/HDInsight w okienku po lewej stronie.
Wybierz pozycję Projekt Spark z przykładami (Scala) w oknie głównym.
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.
Wybierz Dalej.
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). Wybierz Zakończ. Udostępnienie projektu może potrwać kilka minut. Obejrzyj prawy dolny róg, aby uzyskać postęp.
Rozwiń projekt i przejdź do głównego>przykładu src>scala.> Kliknij dwukrotnie SparkCore_WasbIOTest.
Wykonywanie lokalnego przebiegu
W skryscie SparkCore_WasbIOTest kliknij prawym przyciskiem myszy edytor skryptów, a następnie wybierz opcję Uruchom "SparkCore_WasbIOTest", aby wykonać lokalne uruchomienie.
Po zakończeniu uruchamiania lokalnego możesz zobaczyć plik wyjściowy zapisany w bieżącym widoku danych> eksploratora projektów.
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.
- 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.
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
Otwórz skrypt SparkCore_wasbloTest, ustaw punkty przerwania.
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
Przejdź do pozycji Uruchom>konfiguracje edycji.... Z tego menu można utworzyć lub edytować konfiguracje na potrzeby zdalnego debugowania.
W oknie dialogowym Konfiguracje uruchamiania/debugowania wybierz znak plus (+). Następnie wybierz opcję Apache Spark w usłudze HDInsight .
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.
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.
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.
Po zakończeniu ustawień konfiguracji można uruchomić projekt względem klastra zdalnego lub przeprowadzić zdalne debugowanie.
Kliknij przycisk Rozłącz, że dzienniki przesyłania nie są wyświetlane w panelu po lewej stronie. Jednak nadal działa na zapleczu.
Wykonywanie zdalnego debugowania
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.
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 .
Wykonywanie zdalnego debugowania i naprawiania usterek
Skonfiguruj dwa punkty przerwania, a następnie wybierz ikonę Debuguj , aby rozpocząć proces zdalnego debugowania.
Kod zatrzymuje się w pierwszym punkcie przerwania, a informacje o parametrach i zmiennych są wyświetlane w okienku Zmienne .
Wybierz ikonę Wznów program , aby kontynuować. Kod zatrzymuje się w drugim punkcie. Wyjątek jest przechwycony zgodnie z oczekiwaniami.
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ę".
Aby dynamicznie aktualizować wartość zmiennej przy użyciu funkcji debugowania IntelliJ, wybierz ponownie pozycję Debuguj . Zostanie ponownie wyświetlone okienko Zmienne .
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ść.
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.
Następne kroki
Scenariusze
- Platforma Apache Spark z usługą BI: wykonywanie interaktywnej analizy danych przy użyciu platformy Spark w usłudze HDInsight z narzędziami analizy biznesowej
- Platforma Apache Spark z maszyną Edukacja: używanie platformy Spark w usłudze HDInsight do analizowania temperatury budynku przy użyciu danych HVAC
- Platforma Apache Spark z Edukacja maszynowymi: przewidywanie wyników inspekcji żywności za pomocą platformy Spark w usłudze HDInsight
- Analiza dzienników witryn internetowych przy użyciu platformy Apache Spark w usłudze HDInsight
Tworzenie i uruchamianie aplikacji
- Tworzenie autonomicznych aplikacji przy użyciu języka Scala
- Zdalne uruchamianie zadań w klastrze Apache Spark przy użyciu programu Apache Livy
Narzędzia i rozszerzenia
- Tworzenie aplikacji Platformy Apache Spark dla klastra usługi HDInsight przy użyciu zestawu narzędzi Azure Toolkit for IntelliJ
- Zdalne debugowanie aplikacji Platformy Apache Spark za pośrednictwem sieci VPN przy użyciu zestawu narzędzi Azure Toolkit for IntelliJ
- Tworzenie aplikacji platformy Apache Spark za pomocą narzędzi HDInsight Tools w zestawie narzędzi Azure Toolkit for Eclipse
- Używanie notesów Apache Zeppelin z klastrem Apache Spark w usłudze HDInsight
- Jądra dostępne dla notesu Jupyter w klastrze Apache Spark dla usługi HDInsight
- Używanie pakietów zewnętrznych z notesami Jupyter Notebook
- Instalacja oprogramowania Jupyter na komputerze i nawiązywanie połączenia z klastrem Spark w usłudze HDInsight