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


Отладка сбоев в задании 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 Create a debug project.

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

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

    Intellij New Project select Spark version.

    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 Add configuration.

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

    Intellij Add new configuration.

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

    Intellij Run debug configurations new.

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

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

    Intellij Debug Remote Spark Job Remote run button.

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

    Intellij Debug Remote Spark Job Remote run result.

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

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

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

    Azure Storage Explorer download failure.

    Azure Storage Explorer download success.

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

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

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

    crete failure configuration.

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

    run-failure-configuration1.

    run-failure-configuration2.

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

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

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

Сценарии

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

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

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