Samouczek: tworzenie aplikacji platformy Apache Spark za pomocą środowiska IntelliJ przy użyciu obszaru roboczego usługi Synapse

W tym samouczku pokazano, jak używać wtyczki Azure Toolkit for IntelliJ do tworzenia aplikacji platformy Apache Spark napisanych w języku Scala, a następnie przesyłać je do bezserwerowej puli Apache Spark bezpośrednio ze zintegrowanego środowiska projektowego (IDE) intelliJ. Wtyczkę można użyć na kilka sposobów:

  • Tworzenie i przesyłanie aplikacji Scala Spark w puli platformy Spark.
  • Uzyskiwanie dostępu do zasobów pul platformy Spark.
  • Lokalnie twórz i uruchamiaj aplikację Platformy Spark w języku Scala.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Korzystanie z wtyczki Azure Toolkit for IntelliJ
  • Tworzenie aplikacji platformy Apache Spark
  • Przesyłanie aplikacji do pul platformy Spark

Wymagania wstępne

  • IntelliJ IDEA Community Version(Wersja społeczności środowiska IntelliJ IDEA).

  • Wtyczka zestawu narzędzi platformy Azure 3.27.0-2019.2 — instalowanie z repozytorium wtyczki IntelliJ

  • Zestaw JDK (wersja 1.8).

  • Wtyczka Scala — zainstaluj z repozytorium wtyczki IntelliJ.

  • Następujące wymaganie wstępne dotyczy tylko 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 pliku WinUtils.exe. Aby rozwiązać ten błąd, pobierz plik wykonywalny WinUtils do lokalizacji, takiej jak C:\WinUtils\bin. Następnie dodaj zmienną środowiskową HADOOP_HOME i ustaw wartość zmiennej na C:\WinUtils.

Tworzenie aplikacji Spark Scala dla puli platformy Spark

  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 Narzędzie kompilacji wybierz jeden z następujących typów:

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

    IntelliJ IDEA New Project dialog box

  5. Wybierz Dalej.

  6. W oknie New Project (Nowy projekt) podaj następujące informacje:

    Właściwości opis
    Nazwa projektu Wprowadź nazwę. W tym samouczku użyto regionu myApp.
    Lokalizacja projektu Wprowadź lokalizację, w ramach którego chcesz zapisać projekt.
    Zestaw SDK projektu Może to być puste w pierwszym użyciu środowiska IDEA. Wybierz pozycję New... (Nowy...) i przejdź do swojego zestawu JDK.
    Wersja platformy Spark Kreator tworzenia integruje poprawną wersję dla zestawów Spark SDK i Scala SDK. W tym miejscu możesz wybrać potrzebną wersję platformy Spark.

    Selecting the Apache Spark SDK

  7. Wybierz Zakończ. Udostępnienie projektu może potrwać kilka minut.

  8. Projekt Spark automatycznie tworzy artefakt. Aby wyświetlić artefakt, wykonaj następujące czynności:

    a. Na pasku menu przejdź do pozycji Struktura projektu plików>....

    b. W oknie Struktura projektu wybierz pozycję Artefakty.

    c. Po wyświetleniu artefaktu wybierz pozycję Anuluj .

    Artifact info in the dialog box

  9. Znajdź pozycję LogQuery z pliku myApp>src>main>scala>sample>LogQuery. W tym samouczku do uruchomienia jest używana funkcja LogQuery .

    Commands for creating a Scala class from Project

Połączenie do pul platformy Spark

Zaloguj się do subskrypcji platformy Azure, aby nawiązać połączenie z pulami platformy Spark.

Zaloguj się do Twojej subskrypcji platformy Azure.

  1. Na pasku menu przejdź do pozycji Wyświetl>narzędzie Windows>Azure Explorer.

    IntelliJ IDEA shows Azure Explorer

  2. W eksploratorze platformy Azure kliknij prawym przyciskiem myszy węzeł platformy Azure, a następnie wybierz pozycję Zaloguj.

    IntelliJ IDEA explorer right-click Azure

  3. W oknie dialogowym Logowanie do platformy Azure wybierz pozycję Logowanie do urządzenia, a następnie wybierz pozycję Zaloguj.

    IntelliJ IDEA Azure sign-in

  4. W oknie dialogowym Logowanie do urządzenia platformy Azure wybierz pozycję Kopiuj i otwórz.

    IntelliJ IDEA Azure device login

  5. W interfejsie przeglądarki wklej kod, a następnie wybierz przycisk Dalej.

    Microsoft enters code dialog for HDI

  6. Wprowadź poświadczenia platformy Azure, a następnie zamknij przeglądarkę.

    Microsoft enters e-mail dialog for HDI

  7. Po zalogowaniu okno dialogowe Wybieranie subskrypcji zawiera listę wszystkich subskrypcji platformy Azure skojarzonych z poświadczeniami. Wybierz subskrypcję, a następnie wybierz pozycję Wybierz.

    The Select Subscriptions dialog box

  8. W eksploratorze platformy Azure rozwiń węzeł Apache Spark w usłudze Synapse , aby wyświetlić obszary robocze, które znajdują się w Twoich subskrypcjach.

    IntelliJ IDEA Azure Explorer main view

  9. Aby wyświetlić pule platformy Spark, możesz dodatkowo rozwinąć obszar roboczy.

    Azure Explorer storage accounts

Zdalne uruchamianie aplikacji Spark Scala w puli spark

Po utworzeniu aplikacji Scala można ją zdalnie uruchomić.

  1. Otwórz okno Run/Debug Configurations (Uruchamianie/debugowanie konfiguracji), wybierając ikonę.

    The Submit Spark Application to HDInsight command 1

  2. W oknie dialogowym Uruchamianie/debugowanie konfiguracji wybierz pozycję , a następnie wybierz pozycję +Apache Spark w usłudze Synapse.

    The Submit Spark Application to HDInsight command 2

  3. W oknie Run/Debug Configurations (Konfiguracje uruchamiania/debugowania) podaj następujące wartości, a następnie wybierz przycisk OK:

    Właściwości Wartość
    Pule zadań platformy Spark Wybierz pule platformy Spark, w których chcesz uruchomić aplikację.
    Wybieranie artefaktu do przesłania Pozostaw ustawienie domyślne.
    Nazwa klasy głównej Wartość domyślna to klasa główna z wybranego pliku. Klasę można zmienić, wybierając wielokropek(...) i wybierając inną klasę.
    Konfiguracje zadań Możesz zmienić domyślny klucz i wartości. Aby uzyskać więcej informacji, zobacz Interfejs API REST usługi Apache Livy.
    Argumenty wiersza polecenia W razie potrzeby można wprowadzić argumenty rozdzielone spacją dla klasy głównej.
    Przywoływania plików Jar i plików, do których odwołuje się odwołanie Jeśli istnieją, możesz wprowadzić ścieżki dla przywołynych plików Jars i plików. Możesz również przeglądać pliki w wirtualnym systemie plików platformy Azure, który obecnie obsługuje tylko klaster usługi ADLS Gen2. Aby uzyskać więcej informacji: Konfiguracja platformy Apache Spark i Jak przekazać zasoby do klastra.
    Przekazywanie magazynu zadań Rozwiń, aby wyświetlić dodatkowe opcje.
    Typ magazynu Wybierz pozycję Użyj usługi Azure Blob, aby przekazać lub użyć domyślnego konta magazynu klastra do przekazania z listy rozwijanej.
    Konto magazynu Wprowadź konto magazynu.
    Klucz magazynu Wprowadź klucz magazynu.
    Kontener magazynu Wybierz kontener magazynu z listy rozwijanej po wprowadzeniu konta magazynu i klucza magazynu.

    The Spark Submission dialog box 1

  4. Wybierz ikonę SparkJobRun , aby przesłać projekt do wybranej puli Spark. Na karcie Zdalne zadanie spark w klastrze jest wyświetlany postęp wykonywania zadania u dołu. Aplikację można zatrzymać, wybierając czerwony przycisk.

    Apache Spark Submission window

    The Spark Submission dialog box 2

Lokalne uruchamianie/debugowanie aplikacji platformy Apache Spark

Aby skonfigurować lokalne uruchamianie i lokalne debugowanie dla zadania platformy Apache Spark, możesz wykonać poniższe instrukcje.

Scenariusz 1. Wykonywanie uruchamiania lokalnego

  1. Otwórz okno dialogowe Run/Debug Configurations (Uruchamianie/debugowanie konfiguracji), wybierz znak plus (+). Następnie wybierz opcję Apache Spark w usłudze Synapse . Wprowadź informacje w polach Nazwa, Główna nazwa klasy do zapisania.

    Intellij Run debug configurations local run 1

    • Zmienne środowiskowe i Lokalizacja WinUtils.exe są przeznaczone tylko dla użytkowników systemu Windows.
    • Zmienne środowiskowe: zmienna środowiskowa systemu może zostać automatycznie wykryta, jeśli została ona ustawiona wcześniej i nie ma potrzeby ręcznego dodawania.
    • Lokalizacja WinUtils.exe: możesz określić lokalizację WinUtils, wybierając ikonę folderu po prawej stronie.
  2. Następnie wybierz przycisk odtwarzania lokalnego.

    Intellij Run debug configurations local run 2

  3. Po zakończeniu uruchamiania lokalnego, jeśli skrypt zawiera dane wyjściowe, możesz sprawdzić plik wyjściowy z domyślnego ustawienia danych>.

    Intellij Project local run result 1

Scenariusz 2. Wykonywanie lokalnego debugowania

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

  2. Wybierz ikonę lokalnego debugowania , aby przeprowadzić debugowanie lokalne.

    Intellij Project local run result 2

Uzyskiwanie dostępu do obszaru roboczego usługi Synapse i zarządzanie nim

W narzędziu Azure Toolkit for IntelliJ można wykonywać różne operacje w usłudze Azure Explorer. Na pasku menu przejdź do pozycji Wyświetl>narzędzie Windows>Azure Explorer.

Uruchamianie obszaru roboczego

  1. W eksploratorze platformy Azure przejdź do platformy Apache Spark w usłudze Synapse, a następnie rozwiń ją.

    IntelliJ IDEA Azure Explorer main view

  2. Kliknij prawym przyciskiem myszy obszar roboczy, a następnie wybierz pozycję Uruchom obszar roboczy, zostanie otwarta witryna internetowa.

    Spark Job View Application details 1

    Spark Job View Application details 2

Konsola platformy Spark

Możesz uruchomić konsolę lokalną platformy Spark (Scala) lub uruchomić konsolę interakcyjnej sesji usługi Spark Livy (Scala).

Konsola lokalna platformy Spark (Scala)

Upewnij się, że spełniono wymagania wstępne WINUTILS.EXE.

  1. Na pasku menu przejdź do pozycji Uruchom>konfiguracje edycji....

  2. W oknie Uruchamianie/debugowanie konfiguracji w okienku po lewej stronie przejdź do platformy Apache Spark w usłudze Synapse[Spark w usłudze> Synapse] myApp.

  3. W oknie głównym wybierz kartę Uruchamianie lokalne.

  4. Podaj następujące wartości, a następnie wybierz przycisk OK:

    Właściwości Wartość
    Zmienne środowiskowe Upewnij się, że wartość HADOOP_HOME jest poprawna.
    Lokalizacja WINUTILS.exe Upewnij się, że ścieżka jest poprawna.

    Local Console Set Configuration

  5. W obszarze Project przejdź do głównej>aplikacji myApp>src>myApp.>

  6. Na pasku menu przejdź do pozycji Narzędzia>Konsola platformy Spark Uruchom konsolę>lokalną platformy Spark (Scala).

  7. Następnie mogą zostać wyświetlone dwa okna dialogowe z pytaniem, czy chcesz automatycznie naprawić zależności. Jeśli tak, wybierz pozycję Automatyczna poprawka.

    IntelliJ IDEA Spark Auto Fix dialog1

    IntelliJ IDEA Spark Auto Fix dialog2

  8. Konsola powinna wyglądać podobnie do poniższej ilustracji. W oknie konsoli wpisz sc.appName, a następnie naciśnij klawisze Ctrl+Enter. Wynik zostanie wyświetlony. Konsolę lokalną można zatrzymać, wybierając czerwony przycisk.

    IntelliJ IDEA local console result

Konsola interakcyjnej sesji usługi Spark Livy (Scala)

Jest obsługiwana tylko w środowiskach IntelliJ 2018.2 i 2018.3.

  1. Na pasku menu przejdź do pozycji Uruchom>konfiguracje edycji....

  2. W oknie Uruchamianie/debugowanie konfiguracji w okienku po lewej stronie przejdź do platformy Apache Spark w usłudze synapse[Spark w usłudze> synapse] myApp.

  3. W oknie głównym wybierz kartę Zdalne uruchamianie w klastrze .

  4. Podaj następujące wartości, a następnie wybierz przycisk OK:

    Właściwości Wartość
    Nazwa klasy głównej Wybierz nazwę klasy Main.
    Pule zadań platformy Spark Wybierz pule platformy Spark, w których chcesz uruchomić aplikację.

    Interactive Console Set Configuration

  5. W obszarze Project przejdź do głównej>aplikacji myApp>src>myApp.>

  6. Na pasku menu przejdź do pozycji Narzędzia>konsola Spark Uruchom konsolę>interakcyjnej sesji platformy Spark Usługi Livy (Scala).

  7. Konsola powinna wyglądać podobnie do poniższej ilustracji. W oknie konsoli wpisz sc.appName, a następnie naciśnij klawisze Ctrl+Enter. Wynik zostanie wyświetlony. Konsolę lokalną można zatrzymać, wybierając czerwony przycisk.

    IntelliJ IDEA Interactive Console Result

Wysyłanie zaznaczenia do konsoli platformy Spark

Możesz zobaczyć wynik skryptu, wysyłając kod do konsoli lokalnej lub konsoli sesji interakcyjnej usługi Livy (Scala). W tym celu możesz wyróżnić kod w pliku Scala, a następnie kliknąć prawym przyciskiem myszy pozycję Wyślij zaznaczenie do konsoli Spark. Wybrany kod zostanie wysłany do konsoli i zostanie wykonany. Wynik zostanie wyświetlony po kodzie w konsoli programu . Konsola sprawdzi istniejące błędy.

Send Selection to Spark console

Następne kroki