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


Отладка сбоев в задании Spark с помощью Azure Toolkit for IntelliJ (предварительная версия)

В этой статье описано, как использовать инструменты HDInsight из Azure Toolkit for IntelliJ для запуска приложений отладки сбоев Spark.

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

Создание проекта с шаблоном отладки

Создайте проект spark2.3.2, чтобы продолжить отладку сбоев. Воспользуйтесь образцом файла отладки сбоев в задании из этого документа.

  1. Откройте IntelliJ IDEA. Откройте окно Новый проект.

    a. На левой панели щелкните Azure Spark/HDInsight.

    b. В главном окне выберите Проект Spark с образцом отладки сбоев в задании (предварительная версия) (Scala).

    IntelliJ Создайте проект отладки.

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

  2. В окне New Project (Новый проект) выполните указанные ниже действия.

    IntelliJ New Project выберите версию Spark.

    a. Введите имя и расположение проекта.

    b. В раскрывающемся списке Проект SDK выберите Java 1.8 для кластера Spark 2.3.2.

    c. В раскрывающемся списке Версия Spark выберите Spark 2.3.2 (Scala 2.11.8).

    d. Выберите Готово.

  3. Выберите src>main>scala, чтобы открыть код в проекте. В этом примере используется скрипт AgeMean_Div().

Запуск приложения Spark Scala / Java в кластере HDInsight Spark

Создайте приложение Spark Scala / Java, а затем запустите его в кластере Spark, выполнив следующие действия.

  1. Щелкните Добавить конфигурацию, чтобы открыть окно Конфигурации запуска/отладки.

    Добавление конфигурации HDI IntelliJ.

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

    IntelliJ Add new configuration.

  3. Перейдите на вкладку Удаленный запуск в кластере. Введите следующие данные: Имя, Кластер Sparkи Имя класса Main. Наши средства поддерживают отладку с исполнителями. ЧислоExecutors, значение по умолчанию равно 5, и лучше не задать значение выше 3. Чтобы сократить время выполнения, можно добавить spark.yarn.maxAppAttempts в конфигурации задания и установить значение 1. Нажмите кнопку OK, чтобы сохранить конфигурацию.

    Новые конфигурации отладки в IntelliJ.

  4. Теперь конфигурация сохранена под именем, которое вы указали. Чтобы просмотреть сведения о конфигурации, выберите имя конфигурации. Чтобы внести изменения, выберите Edit Configurations (Изменить конфигурации).

  5. Завершив настройку конфигурации, можно запустить проект на удаленном кластере.

    Кнопка удаленного запуска задания Spark для отладки IntelliJ.

  6. Идентификатор приложения можно проверить в окне вывода.

    Результат удаленного выполнения задания Spark для отладки IntelliJ.

Скачивание профиля задания, которое завершилось сбоем

Если отправка задания завершилась сбоем, можно скачать профиль задания, которое завершилось сбоем, на локальный компьютер для дальнейшей отладки.

  1. Откройте Обозреватель службы хранилища Microsoft Azure, выберите учетную запись HDInsight кластера для задания, которое завершилось сбоем, скачайте ресурсы задания, которое завершилось сбоем, из соответствующего расположения: \hdp\spark2-events\.spark-failures\<application ID> в локальную папку. В окне Действия отобразится ход скачивания.

    сбой загрузки служба хранилища Azure Explorer.

    служба хранилища Azure Успешное скачивание обозревателя.

Настройка локальной среды отладки и отладка при сбое

  1. Откройте исходный проект или создайте новый проект и свяжите его с первоначальным исходным кодом. В настоящее время отладка сбоев поддерживается только для версии spark2.3.2

  2. В IntelliJ IDEA создайте файл конфигурации отладки сбоев Spark, выберите файл FTD из ранее скачанных ресурсов заданий, которые завершились сбоем, для поля Расположение контекста сбоя в задании Spark.

    конфигурация сбоя с критом.

  3. Нажмите кнопку локального запуска на панели инструментов. Ошибка отобразится в окне "Выполнение".

    run-failure-configuration1.

    run-failure-configuration2.

  4. Задайте точку останова, как указано в журнале, затем нажмите кнопку локальной отладки, чтобы выполнить локальную отладку так же, как обычные проекты Scala/Java в IntelliJ.

  5. Если после отладки, если выполнение проекта успешно завершается, можно повторно отправить задание, которое завершилось сбоем, в spark в кластере HDInsight.

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

Сценарии

Создание и запуск приложений

Инструменты и расширения

Управление ресурсами