Отладка определяемого пользователем кода C# для заданий U-SQL, завершившихся сбоем
Важно!
Поддержка Azure Data Lake Analytics прекращена 29 февраля 2024 г. Дополнительные сведения см. в этом объявлении.
Для аналитики данных ваша организация может использовать Azure Synapse Analytics или Microsoft Fabric.
U-SQL поддерживает для C# модель расширяемости. В скриптах U-SQL можно легко вызывать функции C# и выполнять аналитические функции, не поддерживающие декларативный язык SQL. Дополнительные сведения о расширяемости U-SQL см. в руководстве по программированию U-SQL.
На практике любой код может нуждаться в отладке, но выполнить отладку распределенного задания с помощью пользовательского кода в облаке с ограниченными файлами журналов сложно. Средства Azure Data Lake для Visual Studio поддерживают отладку вершины с ошибками, которая помогает отлаживать ошибки, возникающие в пользовательском коде. Когда происходит сбой задания U-SQL, служба сохраняет состояние сбоя и позволяет с помощью специального средства скачать облачную среду на момент сбоя, чтобы выполнить отладку на локальном компьютере. В пакете для скачивания содержится вся облачная среда, включая все входные данные и пользовательский код.
Следующее видео демонстрирует использование отладки вершины с ошибками в средствах Azure Data Lake для Visual Studio.
Важно!
Чтобы использовать эту возможность в Visual Studio, необходимо установить следующие два обновления: Распространяемый компонент Microsoft Visual C++ 2015, обновление 3 и Универсальная среда выполнения C для Windows.
Загрузка на локальный компьютер вершины, в которой произошел сбой
Открывая невыполненное задание в средствах Azure Data Lake для Visual Studio, вы получите оповещение в желтой области оповещений; подробные сведения об ошибке также отобразятся на вкладке "Ошибка".
Выберите Скачать , чтобы скачать все необходимые ресурсы и входные потоки. Если скачивание не завершено, выберите Повторить.
Выберите Открыть после завершения скачивания, чтобы создать локальную среду отладки. Откроется новое решение для отладки. Если в Visual Studio открыто существующее решение, сохраните и закройте его перед отладкой.
Настройка среды отладки
Примечание
Перед отладкой обязательно проверьте исключения среды CLR в окне параметров исключений (клавиши CTRL+ALT+E).
В новом запущенном экземпляре Visual Studio можно найти или не найти определяемый пользователем исходный код C#:
Исходный код включен в решение для отладки
Существует два случая, когда исходный код C# сохраняется:
пользовательский код определен в файле кода программной части (обычно с именем
Script.usql.cs
в проекте U-SQL);пользовательский код определен в проекте библиотеки классов C# для приложения U-SQL и зарегистрирован как сборка со сведениями об отладке.
Если исходный код импортирован в решение, для устранения неполадок можно использовать все средства отладки в Visual Studio (контрольные значения, переменные и т. д.).
Нажмите клавишу F5 , чтобы начать отладку. Код выполняется до тех пор, пока он не будет остановлен исключением.
Откройте файл исходного кода и задайте точки останова, затем нажмите клавишу F5 для пошаговой отладки кода.
Исходный код не включен в решение для отладки
Если пользовательский код не включен в файл кода программной части или вы не зарегистрировали сборку с отладочной информацией, исходный код не включается автоматически в решение для отладки. В этом случае нужно добавить исходный код.
Щелкните правой кнопкой мыши Решение "VertexDebug" > Добавить > существующий проект... , чтобы найти исходный код сборки и добавить проект в решение для отладки.
Получите путь к папке проекта FailedVertexDebugHost.
Right-Click добавленные свойства проекта > исходного кода сборки выберите вкладку Сборка слева и вставьте скопированный путь, заканчивающийся на \bin\debug, в качестве выходного > пути. Окончательный выходной путь похож на
<DataLakeTemp path>\fd91dd21-776e-4729-a78b-81ad85a4fba6\loiu0t1y.mfo\FailedVertexDebug\FailedVertexDebugHost\bin\Debug\
.
Завершив эти настройки, начните отладку с помощью клавиши F5 и точек останова. Для устранения неполадок можно просто использовать все возможности Visual Studio для отладки (контрольные значения, переменные и т. д.).
Примечание
Проект исходного кода сборок необходимо перестраивать после каждого изменения кода, чтобы использовать новые PDB-файлы.
Повторная отправка задания
Когда отладка будет завершена, после успешного выполнения проекта в окне вывода отобразится следующее сообщение:
The Program 'LocalVertexHost.exe' has exited with code 0 (0x0).
Чтобы повторно отправить невыполненное задание, выполните следующие действия.
Для заданий с кодом программной части скопируйте код C# в файл с кодом программной части (обычно
Script.usql.cs
).Для заданий со сборками щелкните правой кнопкой мыши проект сборки исходного кода в решении для отладки и зарегистрируйте обновленные DLL-файлы сборки в каталог Azure Data Lake.
Повторно отправьте задание U-SQL.
Дальнейшие действия
- Руководство по программированию U-SQL
- Разработка определяемых пользователем операторов U-SQL для заданий аналитики озера данных Azure
- Тестирование и отладка заданий U-SQL с помощью локального выполнения и пакета SDK U-SQL для Azure Data Lake
- Устранение неполадок, связанных с неправильным повторяющимся заданием