Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server 2019 (15.x)
В этой статье объясняется, как использовать curl для загрузки данных в HDFS в кластерах больших данных SQL Server 2019.
Important
Кластеры больших данных Microsoft SQL Server 2019 прекращены. Поддержка кластеров больших данных SQL Server 2019 закончилась с 28 февраля 2025 г. Дополнительные сведения см. в записи блога объявлений и параметрах больших данных на платформе Microsoft SQL Server.
Prerequisites
Получение внешнего IP-адреса службы
WebHDFS запускается при завершении развертывания, и его доступ проходит через Knox. Конечная точка Knox доступна через службу Kubernetes, называемую gateway-svc-external. Чтобы создать необходимый URL-адрес WebHDFS для отправки и скачивания файлов, вам потребуется внешний IP-адрес шлюза svc-external и имя кластера больших данных. Внешний IP-адрес шлюза svc-external service можно получить, выполнив следующую команду:
kubectl get service gateway-svc-external -n <big data cluster name> -o json | jq -r .status.loadBalancer.ingress[0].ip
Note
Ниже <big data cluster name> приведено имя кластера, указанного в файле конфигурации развертывания. Имя по умолчанию имеет значение mssql-cluster.
Создание URL-адреса для доступа к WebHDFS
Теперь можно создать URL-адрес для доступа к WebHDFS следующим образом:
https://<gateway-svc-external service external IP address>:30443/gateway/default/webhdfs/v1/
For example:
https://13.66.190.205:30443/gateway/default/webhdfs/v1/
Проверка подлинности с помощью Active Directory
Для развертываний с Active Directory используйте параметр проверки подлинности curl с использованием механизма проверки подлинности Negotiate.
Чтобы использовать curl с аутентификацией Active Directory, выполните следующую команду:
kinit <username>
Команда создает маркер Kerberos для curl использования. Команды, показанные в следующих разделах, указывают параметр --anyauth для curl. Для URL-адресов, требующих аутентификации по протоколу Negotiate, curl автоматически обнаруживает и использует созданный токен Kerberos вместо имени пользователя и пароля для аутентификации на URL-адресах.
Перечислить файл
Чтобы получить список файлов в hdfs:///product_review_data, используйте следующую команду curl:
curl -i -k --anyauth -u root:<AZDATA_PASSWORD> -X GET 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/product_review_data/?op=liststatus'
Начиная с SQL Server 2019 (15.x) CU 5, при развертывании нового кластера с базовой проверкой подлинности все конечные точки, включая шлюз, используют AZDATA_USERNAME и AZDATA_PASSWORD. Конечные точки в кластерах, которые обновлены до CU 5, продолжают использовать root в качестве имени пользователя для подключения к конечной точке шлюза. Это изменение не применяется к развертываниям с помощью проверки подлинности Active Directory. См. учетные данные для доступа к службам через конечную точку шлюза в заметках о выпуске.
Для конечных точек, не использующих root, используйте следующую команду curl:
curl -i -k --anyauth -u <AZDATA_USERNAME>:<AZDATA_PASSWORD> -X GET 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/product_review_data/?op=liststatus'
Поместите локальный файл в HDFS
Чтобы поместить новый файлtest.csvиз локального каталога в каталог product_review_data , используйте следующую команду curl (требуется параметр Content-Type ):
curl -i -L -k --anyauth -u root:<AZDATA_PASSWORD> -X PUT 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/product_review_data/test.csv?op=create' -H 'Content-Type: application/octet-stream' -T 'test.csv'
Начиная с SQL Server 2019 (15.x) CU 5, при развертывании нового кластера с базовой проверкой подлинности все конечные точки, включая шлюз, используют AZDATA_USERNAME и AZDATA_PASSWORD. Конечные точки в кластерах, которые обновлены до CU 5, продолжают использовать root в качестве имени пользователя для подключения к конечной точке шлюза. Это изменение не применяется к развертываниям с помощью проверки подлинности Active Directory. См. учетные данные для доступа к службам через конечную точку шлюза в заметках о выпуске.
Для конечных точек, не использующих root, используйте следующую команду curl:
curl -i -L -k --anyauth -u <AZDATA_USERNAME>:<AZDATA_PASSWORD> -X PUT 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/product_review_data/test.csv?op=create' -H 'Content-Type: application/octet-stream' -T 'test.csv'
Создание каталога
Чтобы создать каталог test в hdfs:/// разделе, используйте следующую команду.
curl -i -L -k --anyauth -u root:<AZDATA_PASSWORD> -X PUT 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/test?op=MKDIRS'
Начиная с SQL Server 2019 (15.x) CU 5, при развертывании нового кластера с базовой проверкой подлинности все конечные точки, включая шлюз, используют AZDATA_USERNAME и AZDATA_PASSWORD. Конечные точки в кластерах, которые обновлены до CU 5, продолжают использовать root в качестве имени пользователя для подключения к конечной точке шлюза. Это изменение не применяется к развертываниям с помощью проверки подлинности Active Directory. См. учетные данные для доступа к службам через конечную точку шлюза в заметках о выпуске.
Для конечных точек, не использующих root, используйте следующую команду curl:
curl -i -L -k --anyauth -u <AZDATA_USERNAME>:<AZDATA_PASSWORD> -X PUT 'https://<gateway-svc-external IP external address>:30443/gateway/default/webhdfs/v1/test?op=MKDIRS'
Next steps
Дополнительные сведения см. в разделе "Общие сведения о кластерах больших данных SQL Server".