Поделиться через


Руководство. Создание приложения Apache Spark с помощью IntelliJ с помощью рабочей области Synapse

В этом руководстве показано, как с помощью подключаемого модуля Azure Toolkit for IntelliJ разрабатывать приложения Apache Spark на языке Scala и отправлять их в бессерверный пул Apache Spark напрямую из интегрированной среды разработки (IDE) IntelliJ. С помощью подключаемого модуля можно выполнять следующие действия:

  • разрабатывать и отправлять приложения Spark на Scala в пул Spark.
  • получать доступ к ресурсам пулов Spark.
  • разрабатывать и запускать приложения Scala Spark в локальной среде.

В этом руководстве описано следующее:

  • Использование подключаемого модуля Azure Toolkit for IntelliJ
  • Разработка приложений Apache Spark
  • Отправка приложения в пулы Spark

Необходимые компоненты

Создание приложения Spark Scala для пула Spark

  1. Запустите IntelliJ IDEA и выберите Create New Project (Создать проект), чтобы открыть окно New Project (Новый проект).

  2. На панели слева выберите Azure Spark/HDInsight.

  3. В главном окне выберите Spark Project with Samples(Scala) (Проект Spark с примерами (Scala)).

  4. Из раскрывающегося списка Build tool (Инструмент сборки) выберите один из следующих вариантов:

    • Maven для поддержки мастера создания проекта Scala.
    • SBT для управления зависимостями и создания проекта Scala.

    IntelliJ IDEA New Project dialog box

  5. Выберите Далее.

  6. В окне New Project (Новый проект) укажите следующую информацию:

    Свойство Description
    Имя проекта Введите имя. В этом учебнике используется myApp.
    Расположение проекта Введите необходимое расположение для сохранения проекта.
    Project SDK (Пакет SDK проекта) Это поле может быть пустым при первом использовании IDEA. Выберите New... (Создать...) и перейдите к JDK.
    Версия Spark Мастер создания интегрирует правильную версию пакетов SDK для Spark и Scala. Здесь можно выбрать нужную версию Spark.

    Selecting the Apache Spark SDK

  7. Выберите Готово. Может пройти несколько минут, прежде чем проект станет доступным.

  8. Проект Spark автоматически создает артефакт. Чтобы просмотреть артефакт, выполните указанные ниже действия.

    a. В строке меню выберите File (Файл)>Project Structure... (Структура проекта…).

    b. В окне структуры проекта щелкните Artifacts (Артефакты).

    c. После просмотра артефакта щелкните Cancel (Отменить).

    Artifact info in the dialog box

  9. Найдите раздел LogQuery в каталоге myApp>src>main>scala>sample>LogQuery. В этом учебнике для запуска используется LogQuery.

    Commands for creating a Scala class from Project

Подключение к пулам Spark

Войдите в подписку Azure, чтобы подключиться к пулам Spark.

Войдите в подписку Azure.

  1. В строке меню выберите Представление>Окно инструментов>Azure Explorer.

    IntelliJ IDEA shows Azure Explorer

  2. В Azure Explorer щелкните правой кнопкой мыши узел Azure, а затем выберите Войти.

    IntelliJ IDEA explorer right-click Azure

  3. В диалоговом окне Вход в Azure выберите Имя пользователя устройства, а затем — Войти.

    IntelliJ IDEA Azure sign-in

  4. В диалоговом окне Azure Device Login (Вход в систему устройства Azure) щелкните Copy&Open (Копировать и открыть).

    IntelliJ IDEA Azure device login

  5. В интерфейсе браузера вставьте код и нажмите кнопку Далее.

    Microsoft enters code dialog for HDI

  6. Введите учетные данные Azure и закройте браузер.

    Microsoft enters e-mail dialog for HDI

  7. После входа в диалоговом окне Select Subscriptions (Выбор подписок) будут перечислены все подписки Azure, связанные с указанными учетными данными. Выберите свою подписку и нажмите кнопку Select (Выбрать).

    The Select Subscriptions dialog box

  8. В Azure Explorer разверните узел Apache Spark on Synapse (Apache Spark в Synapse), чтобы просмотреть рабочие области в своей подписке.

    IntelliJ IDEA Azure Explorer main view

  9. Для просмотра пулов Spark можно дополнительно развернуть рабочую область.

    Azure Explorer storage accounts

Удаленный запуск приложения Spark Scala в пуле Spark

После создания приложения Scala его можно запустить удаленно.

  1. Откройте окно Run/Debug Configurations (Конфигурации запуска и отладки), щелкнув значок.

    The Submit Spark Application to HDInsight command 1

  2. В диалоговом окне Run/Debug Configurations (Конфигурации запуска и отладки) щелкните +, а затем выберите Apache Spark on Synapse (Apache Spark в Synapse).

    The Submit Spark Application to HDInsight command 2

  3. В окне Run/Debug Configurations (Конфигурации запуска и отладки) укажите следующие значения, а затем нажмите кнопку ОК.

    Свойство Значение
    Пулы Spark Выберите пулы Spark, в которых хотите запустить приложение.
    Select an Artifact to submit (Выбор артефакта для запуска) Оставьте параметр по умолчанию.
    Имя главного класса значение по умолчанию — имя главного класса из выбранного файла. Класс можно изменить, нажав значок-многоточие (...) и выбрав другой класс.
    Job configurations (Конфигурация заданий) Вы можете изменить ключи или значения по умолчанию. Дополнительные сведения см. в статье Apache Livy REST API.
    Аргументы командной строки При необходимости можно ввести аргументы для основного класса, разделив их пробелом.
    Referenced Jars (Ссылки на JAR-файлы) и Referenced Files (Ссылки на файлы) можно ввести пути к используемым JAR и файлам, если они есть. Вы можете также просматривать файлы в виртуальной файловой системе Azure, которая сейчас поддерживает только кластер ADLS 2 поколения. Дополнительные сведения: конфигурация Apache Spark и отправка ресурсов в кластер.
    Job Upload Storage (Хранилище обновлений заданий) Разверните раздел, чтобы отобразить дополнительные параметры.
    Тип хранилища В раскрывающемся списке выберите Use Azure Blob to upload (Для отправки использовать BLOB-объект Azure) или Use cluster default storage account to upload (Для отправки использовать учетную запись хранения по умолчанию для кластера).
    Учетная запись хранения Введите имя своей учетной записи хранения.
    Storage Key (Ключ хранилища) Введите свой ключ к хранилищу данных.
    Контейнер хранилища Если вы ввели значения в поля Учетная запись хранения и Storage Key (Ключ хранилища), из раскрывающегося списка выберите контейнер хранилища.

    The Spark Submission dialog box 1

  4. Щелкните значок SparkJobRun, чтобы отправить проект в выбранный пул Spark. На вкладке Remote Spark Job in Cluster (Удаленное задание Spark в кластере) внизу показан ход выполнения задания. Чтобы остановить работу приложения, нажмите красную кнопку.

    Apache Spark Submission window

    The Spark Submission dialog box 2

Локальные запуск и отладка приложений Apache Spark

Чтобы настроить локальные запуск и отладку для задания Apache Spark, следуйте приведенным ниже указаниям.

Сценарий 1. Выполнение локального запуска

  1. В диалоговом окне Run/Debug Configurations (Конфигурации выполнения и отладки) щелкните значок плюса (+). Затем выберите вариант Apache Spark on Synapse (Apache Spark в Synapse). Введите сведения в полях Name (Имя) и Main class name (Имя основного класса).

    Intellij Run debug configurations local run 1

    • Переменные среды и расположение файла WinUtils.exe используются только для Windows.
    • Переменные среды. Системная переменная среды может быть автоматически обнаружена, если она установлена раньше и не требуется вручную добавлять.
    • Расположение WinUtils.exe: можно указать расположение WinUtils, выбрав значок папки справа.
  2. Затем нажмите кнопку локального выполнения.

    Intellij Run debug configurations local run 2

  3. После завершения локального выполнения, если скрипт содержит выходные данные, можно проверить выходной файл в папке data>default.

    Intellij Project local run result 1

Сценарий 2. Выполнение локальной отладки

  1. Откройте скрипт LogQuery и установите точки останова.

  2. Щелкните значок Local debug (Локальная отладка), чтобы выполнить локальную отладку.

    Intellij Project local run result 2

Доступ к рабочей области Synapse и управление ею

В Azure Explorer можно выполнять различные операции в Azure Toolkit для IntelliJ. В строке меню выберите Представление>Окно инструментов>Azure Explorer.

Создание рабочей области

  1. В Azure Explorer перейдите в раздел Apache Spark on Synapse (Apache Spark в Synapse), а затем разверните его.

    IntelliJ IDEA Azure Explorer main view

  2. Щелкните правой кнопкой мыши рабочую область, а затем выберите команду Запуск рабочей области, после чего откроется веб-сайт.

    Spark Job View Application details 1

    Spark Job View Application details 2

Консоль Spark

Вы можете запустить локальную консоль Spark (Scala) или консоль интерактивного сеанса Spark Livy (Scala).

Локальная консоль Spark (Scala)

Убедитесь в том, что есть необходимый файл WINUTILS.EXE.

  1. В строке меню выберите Run (Запуск)>Edit Configurations... (Изменить конфигурации).

  2. В левой области окна Run/Debug Configurations (Конфигурации запуска и отладки) выберите элементы Apache Spark on Synapse (Apache Spark в Synapse)>[Spark on Synapse] myApp (myApp [Spark в Synapse]).

  3. В главном окне выберите вкладку Locally Run (Локальный запуск).

  4. Укажите следующие значения и нажмите кнопку ОК:

    Свойство Значение
    Переменные среды Проверьте правильность значения HADOOP_HOME.
    Расположение файла WINUTILS.exe Проверьте правильность пути.

    Local Console Set Configuration

  5. В проекте перейдите в myApp>src>main>scala>myApp.

  6. В строке меню выберите Tools (Средства)>Spark Console (Консоль Spark)>Run Spark Local Console(Scala) (Запустить локальную консоль Spark (Scala)).

  7. После этого могут появиться два диалоговых окна с запросом на автоматическое исправление зависимостей. Если нужно исправить их, выберите Auto Fix (Автоматическое исправление).

    IntelliJ IDEA Spark Auto Fix dialog1

    IntelliJ IDEA Spark Auto Fix dialog2

  8. Консоль должна выглядеть примерно так, как показано ниже. В окне консоли введите sc.appName и нажмите клавиши CTRL+ВВОД. Отобразится результат. Чтобы закрыть локальную консоль, нажмите красную кнопку.

    IntelliJ IDEA local console result

Консоль интерактивного сеанса Spark Livy (Scala)

Она поддерживается только в IntelliJ 2018.2 и 2018.3.

  1. В строке меню выберите Run (Запуск)>Edit Configurations... (Изменить конфигурации).

  2. В левой области окна Run/Debug Configurations (Конфигурации запуска и отладки) выберите элементы Apache Spark on Synapse (Apache Spark в Synapse)>[Spark on Synapse] myApp (myApp [Spark в Synapse]).

  3. В главном окне выберите вкладку Remotely Run in Cluster (Удаленный запуск в кластере).

  4. Укажите следующие значения и нажмите кнопку ОК:

    Свойство Значение
    Имя главного класса Выберите имя класса main.
    Пулы Spark Выберите пулы Spark, в которых хотите запустить приложение.

    Interactive Console Set Configuration

  5. В проекте перейдите в myApp>src>main>scala>myApp.

  6. В строке меню выберите Tools (Средства)>Spark Console (Консоль Spark)>Run Spark Livy Interactive Session Console(Scala) (Запустить консоль интерактивного сеанса Spark Livy (Scala)).

  7. Консоль должна выглядеть примерно так, как показано ниже. В окне консоли введите sc.appName и нажмите клавиши CTRL+ВВОД. Отобразится результат. Чтобы закрыть локальную консоль, нажмите красную кнопку.

    IntelliJ IDEA Interactive Console Result

Отправка выбранного фрагмента кода в консоль Spark

Вы можете увидеть результат выполнения скрипта, отправив код в локальную консоль или консоль интерактивного сеанса Livy (Scala). Для этого выделите код в файле Scala, а затем в контекстном меню выберите команду Send Selection To Spark Console (Отправить выделенный фрагмент в консоль Spark). Выделенный код будет отправлен в консоль и выполнен. Результат отобразится в консоли после кода. Консоль проверит наличие ошибок.

Send Selection to Spark console

Следующие шаги