Интерпретация кодов ошибок в Synapse Analytics
Есть много факторов, которые влияют на то, почему приложение Spark не будет работать в Azure Synapse Analytics. Например, это может быть вызвано системной ошибкой или даже связанной с пользователем ошибкой. Ранее все ошибки, соответствующие завершившимся сбоем заданиям в Synapse Analytics, отображались с помощью универсального кода ошибки LIVY_JOB_STATE_DEAD. Этот код ошибки не предоставлял дополнительных сведений о том, почему задание завершилось сбоем. Для определения основной причины требовалось прилагать значительные усилия, чтобы изучить особенности работы драйвера и исполнителя, а также событий Spark и журналов Livy, и найти решение.
Мы представили более точный список кодов ошибок, который заменит предыдущее общее сообщение. Новое сообщение описывает причину сбоя. При сбое задания в Azure Synapse Analytics функция обработки ошибок анализирует и проверяет журналы в серверной части, чтобы определить первопричину. Затем пользователю отображается сообщение на панели мониторинга, а также действия по устранению проблемы.
Включение классификации ошибок в Synapse
Функцию классификации ошибок можно включить или отключить, задав для следующей конфигурации Spark значение true
или false
на уровне задания или пула:
livy.rsc.synapse.error-classification.enabled
В следующем разделе перечислены некоторые типы ошибок, которые сейчас поддерживаются. Мы постоянно совершенствуем и добавляем новые коды ошибок, улучшая нашу модель.
Категории кодов ошибок
Каждый код ошибки относится к одному из следующих четырех сегментов:
- User — указывает на ошибку пользователя.
- System — указывает на системную ошибку.
- Ambiguous — может быть либо ошибка пользователя, либо системная ошибка.
- Unknown — классификация пока отсутствует, скорее всего, из-за того, что тип ошибки не включен в модель.
Примеры кодов ошибок для каждого типа классификации
Spark_User_TypeError_TypeNotIterable
В Python ошибка TypeError: argument of type 'insert type' is not iterable
возникает, когда оператор членства (in, not in) используется для проверки принадлежности значения к неитерируемым объектам, таким как список, кортеж, словарь. Обычно это связано с поиском значения в неизменяемом объекте. Возможные решения:
- Проверьте, присутствует ли значение в итерируемом объекте.
- Если вы хотите сверить одно значение с другим, используйте логический оператор вместо оператора членства.
- Если оператор членства содержит значение None, он не сможет выполнить итерацию, и потребуется выполнить проверку на наличие значения null или назначенного значения по умолчанию.
- Проверьте, что тип используемого значения можно проверить и что вводимые данные правильные.
Spark_System_ABFS_OperationFailed
Сбой операции с ADLS 2-го поколения.
Эта ошибка обычно возникает из-за проблемы с разрешениями.
Убедитесь, что для всех ресурсов ADLS 2-го поколения, на которые ссылается задание Spark, есть роль RBAC "Участник данных BLOB-объекта хранилища" в учетных записях хранения, из которых задание должно выполнять чтение и запись. Проверьте журналы для этого приложения Spark. Перейдите в Synapse Studio и выберите вкладку Монитор в области слева. В разделе Действия выберите Приложения Apache Spark и найдите задание Spark в списке. Для имени учетной записи хранения ADLS 2-го поколения, в которой возникла эта проблема, проверьте журналы, доступные на вкладке Журналы в нижней части этой страницы.
Spark_Ambiguous_ClassLoader_NoClassDefFound
Не удалось найти класс, требуемый для кода, при выполнении скрипта.
Дополнительные сведения см. на следующих страницах документации по управлению пакетами:
Для сценариев с Notebook: Управление пакетами для интерактивных заданий в Apache Spark.
Для сценариев с пакетной службой Spark (см. раздел 6): Управление пакетами для пакетных заданий в Apache Spark.
Убедитесь, что все зависимости кода включены в выполнения JAR-файлов Synapse. Если вы не включаете или не можете включить сторонние JAR-файлы в собственный код, убедитесь, что все зависимости включены в пакеты рабочей области для пула Spark, в котором вы выполняете код, или что они включены в список "Справочные файлы" для пакетной отправки Spark. Дополнительные сведения см. в документации выше.
Spark_Unknown_Unknown_java.lang.Exception
Неизвестный сбой, модель не смогла выполнить классификацию.
Коды ошибок (включая приведенный выше список и не только) вместе с инструкциями по устранению неполадок будут отображаться в области ошибок приложения Synapse Studio, если эта функция включена.
Примечание
Если вы создали какое-либо средство для задания мониторинга Synapse, которое проверяет завершившееся сбоем задание, фильтруя код ошибки LIVY_JOB_STATE_DEAD
, ваше приложение больше не будет работать. Возвращенные коды ошибок будут отличаться, как упоминалось выше. Измените все скрипты соответствующим образом, чтобы использовать эту функцию или отключите ее, если она не нужна.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по