Службы машинного обучения SQL Server - не удалось запустить среду выполнения. ErrorCode 0x80070032: 50(запрос не поддерживается.)
Попытка настроить MLS на SQL Server 2017, но при запуске очень простого внешнего скрипта, например:
EXEC sp_execute_external_script @language =N'R',
@script=N'OutputDataSet <- InputDataSet;',
@input_data_1 =N'SELECT 1 AS hello'
WITH RESULT SETS (([hello] int not null));
GO
Я получаю такую ошибку:
Msg 39021, уровень 16, состояние 1, строка 1 Не удалось запустить среду выполнения для сценария R. Пожалуйста, проверьте конфигурацию среды выполнения 'R'. Msg 39019, уровень 16, состояние 2, строка 1 Произошла ошибка внешнего сценария: не удалось запустить среду выполнения. ErrorCode 0x80070032: 50(запрос не поддерживается.).
И если я смотрю журнал EXTLAUNCHERRORLOG, я вижу:
2020-12-29 17:53:49.554 SetCpuRateCap завершился неудачно с кодом ошибки 0x80070032.
Я нигде не могу найти ссылки на эту ошибку и очень озадачен. Пробовал всевозможные вещи (проверка разрешений, отключение регулятора ресурсов, обновление до последней версии CU, переустановка MLS и т. Д.). У нас есть аналогичный сервер, работающий на той же платформе Azure (тот же размер, W2012R2, та же конфигурация памяти / процессора), настроенный примерно в то же время, и, похоже, у него нет этой проблемы. Это происходит как с сервисами R, так и с Python.
Любая помощь будет оценена.
1 ответ
У меня есть решение, которое мы использовали сегодня, переходя с R 3.3.3 и python 3.5.2 на R 3.5.2 и Python 3.7.1.
SQL 2017 CU22 устанавливает более высокое значение R & Python, поэтому вам нужно запустить исполняемый файл, чтобы сообщить SQL использовать более высокие версии R & Python, которые были установлены на диске.
Исправление, которое сработало для нас:
(1) Создайте новый каталог, например, D: \ MLSTEMP
(2) Создайте подкаталоги D: \ MLSTEMP\ <SQL_instance> 00 и D: \ MLSTEMP\ <SQL_instance>01
(3) Убедитесь, что локальная служба MSSQLLaunchpad, группа «Все» и учетная запись службы SQL имеют полный доступ как к D: \ MLSTEMP, так и к вложенным каталогам.
Примечание: скобки <> не являются частью имени каталога
Примечание. Имя службы панели запуска: NTService \ MSSQLLaunchpad $ <instance_name>
(4) Перейдите к своему
D: \ Program Files \ Microsoft SQL Server \ MSSQL14.SQL001 \ MSSQL \ Binn \ pythonlauncher.config
и
D: \ Program Files \ Microsoft SQL Server \ MSSQL14.SQL001 \ MSSQL \ Binn \ rlauncher.config
и измените параметр WORKING_DIRECTORY в каждом файле на WORKING_DIRECTORY=D: \ MLSTEMP
(5) Перезапустите службу MSSQLLaunchpad на коробке.
Интересно, что используется каталог ****01, а не каталог ****00.
Теперь он должен работать. Возможно, вам придется немного поиграть с разрешениями.
HTH.