Отладка сбоев в задании Spark с помощью Azure Toolkit for IntelliJ (предварительная версия)
В этой статье описано, как использовать инструменты HDInsight из Azure Toolkit for IntelliJ для запуска приложений отладки сбоев Spark.
Необходимые компоненты
Комплект разработчика Oracle Java. В этом руководстве используется Java версии 8.0.202.
IntelliJ IDEA. В этой статье используется среда IntelliJ IDEA Community 2019.1.3.
Azure Toolkit for IntelliJ. Дополнительные сведения см. в статье Установка набора средств Azure для IntelliJ.
Установите подключение к кластеру HDInsight. См. статью Подключение к кластеру HDInsight.
Обозреватель службы хранилища Microsoft Azure. См. статью Скачивание Обозревателя службы хранилища Microsoft Azure.
Создание проекта с шаблоном отладки
Создайте проект spark2.3.2, чтобы продолжить отладку сбоев. Воспользуйтесь образцом файла отладки сбоев в задании из этого документа.
Откройте IntelliJ IDEA. Откройте окно Новый проект.
a. На левой панели щелкните Azure Spark/HDInsight.
b. В главном окне выберите Проект Spark с образцом отладки сбоев в задании (предварительная версия) (Scala).
c. Выберите Далее.
В окне New Project (Новый проект) выполните указанные ниже действия.
a. Введите имя и расположение проекта.
b. В раскрывающемся списке Проект SDK выберите Java 1.8 для кластера Spark 2.3.2.
c. В раскрывающемся списке Версия Spark выберите Spark 2.3.2 (Scala 2.11.8).
d. Выберите Готово.
Выберите src>main>scala, чтобы открыть код в проекте. В этом примере используется скрипт AgeMean_Div().
Запуск приложения Spark Scala / Java в кластере HDInsight Spark
Создайте приложение Spark Scala / Java, а затем запустите его в кластере Spark, выполнив следующие действия.
Щелкните Добавить конфигурацию, чтобы открыть окно Конфигурации запуска/отладки.
В диалоговом окне Run/Debug Configurations (Конфигурации выполнения и отладки) щелкните знак "плюс" (+). Затем выберите вариант Apache Spark on HDInsight (Apache Spark в HDInsight).
Перейдите на вкладку Удаленный запуск в кластере. Введите следующие данные: Имя, Кластер Sparkи Имя класса Main. Наши средства поддерживают отладку с исполнителями. numExectors, значение по умолчанию — 5. Не рекомендуется задавать значение выше 3. Чтобы сократить время выполнения, можно добавить spark.yarn.maxAppAttempts в конфигурации задания и установить значение 1. Нажмите кнопку OK, чтобы сохранить конфигурацию.
Теперь конфигурация сохранена под именем, которое вы указали. Чтобы просмотреть сведения о конфигурации, выберите имя конфигурации. Чтобы внести изменения, выберите Edit Configurations (Изменить конфигурации).
Завершив настройку конфигурации, можно запустить проект на удаленном кластере.
Идентификатор приложения можно проверить в окне вывода.
Скачивание профиля задания, которое завершилось сбоем
Если отправка задания завершилась сбоем, можно скачать профиль задания, которое завершилось сбоем, на локальный компьютер для дальнейшей отладки.
Откройте Обозреватель службы хранилища Microsoft Azure, выберите учетную запись HDInsight кластера для задания, которое завершилось сбоем, скачайте ресурсы задания, которое завершилось сбоем, из соответствующего расположения: \hdp\spark2-events\.spark-failures\<application ID> в локальную папку. В окне Действия отобразится ход скачивания.
Настройка локальной среды отладки и отладка при сбое
Откройте исходный проект или создайте новый проект и свяжите его с первоначальным исходным кодом. В настоящее время отладка сбоев поддерживается только для версии spark2.3.2
В IntelliJ IDEA создайте файл конфигурации отладки сбоев Spark, выберите файл FTD из ранее скачанных ресурсов заданий, которые завершились сбоем, для поля Расположение контекста сбоя в задании Spark.
Нажмите кнопку локального запуска на панели инструментов. Ошибка отобразится в окне "Выполнение".
Задайте точку останова, как указано в журнале, затем нажмите кнопку локальной отладки, чтобы выполнить локальную отладку так же, как обычные проекты Scala/Java в IntelliJ.
Если после отладки, если выполнение проекта успешно завершается, можно повторно отправить задание, которое завершилось сбоем, в spark в кластере HDInsight.
Следующие шаги
Сценарии
- Apache Spark с бизнес-аналитикой. Интерактивный анализ данных с использованием Spark в HDInsight с инструментами бизнес-аналитики
- Apache Spark и Машинное обучение. Анализ температуры в здании на основе данных системы кондиционирования с помощью Spark в HDInsight
- Apache Spark и Машинное обучение. Прогнозирование результатов проверки пищевых продуктов с помощью Spark в HDInsight
- Анализ журналов веб-сайтов с помощью Apache Spark в HDInsight
Создание и запуск приложений
- Создание автономного приложения с использованием Scala
- Удаленный запуск заданий с помощью Apache Livy в кластере Apache Spark
Инструменты и расширения
- Создание приложений Apache Spark для кластера HDInsight с помощью Azure Toolkit for IntelliJ
- Удаленная отладка приложений Spark в HDInsight через VPN с помощью Azure Toolkit for IntelliJ
- Использование средств HDInsight в Azure Toolkit for Eclipse для создания приложений Apache Spark
- Использование записных книжек Zeppelin с кластером Apache Spark в Azure HDInsight
- Ядра, доступные для Jupyter Notebook в кластере Apache Spark в HDInsight
- Использование внешних пакетов с Jupyter Notebook
- Установка записной книжки Jupyter на компьютере и ее подключение к кластеру Apache Spark в Azure HDInsight (предварительная версия)