Отладка пользовательского кода 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 Tools для Visual Studio.
Это важно
Visual Studio требует следующих двух обновлений для использования этой функции: распространяемого обновления 3 microsoft Visual C++ 2015 и универсальной среды выполнения C для Windows.
Загрузить ошибочную вершину на локальный компьютер
После открытия неудачного задания в Azure Data Lake Tools для 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.