Использование curl для загрузки данных в HDFS в SQL Server Кластеры больших данных
Область применения: SQL Server 2019 (15.x)
В этой статье объясняется, как использовать curl для загрузки данных в HDFS на Кластеры больших данных SQL Server 2019.
Внимание
Поддержка надстройки "Кластеры больших данных" Microsoft SQL Server 2019 будет прекращена. Мы прекратим поддержку Кластеров больших данных SQL Server 2019 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на платформе, и программное обеспечение будет продолжать поддерживаться с помощью накопительных обновлений SQL Server до этого времени. Дополнительные сведения см. в записи блога объявлений и в статье о параметрах больших данных на платформе Microsoft SQL Server.
Необходимые компоненты
Получение внешнего IP-адреса службы
WebHDFS запускается после завершения развертывания. Доступ к этой службе осуществляется через Knox. Конечная точка Knox предоставляется через службу Kubernetes gateway-svc-external. Для создания необходимого URL-адреса WebHDFS для отправки или скачивания файлов потребуется внешний IP-адрес службы gateway-svc-external и имя кластера больших данных. Внешний IP-адрес службы gateway-svc-external можно получить, выполнив следующую команду:
kubectl get service gateway-svc-external -n <big data cluster name> -o json | jq -r .status.loadBalancer.ingress[0].ip
Примечание.
<big data cluster name>
— это имя кластера, указанное в файле конфигурации развертывания. Имя по умолчанию имеет значение mssql-cluster
.
Создание URL-адреса для доступа к WebHDFS
Теперь можно создать URL-адрес для доступа к WebHDFS следующим образом:
https://<gateway-svc-external service external IP address>:30443/gateway/default/webhdfs/v1/
Например:
https://13.66.190.205:30443/gateway/default/webhdfs/v1/
Проверка подлинности через Active Directory
Для развертываний с Active Directory используйте параметр проверки подлинности с curl
с проверкой подлинности согласованием.
Чтобы использовать curl
с проверкой подлинности Active Directory, выполните следующую команду:
kinit <username>
Команда создает токен Kerberos для curl
. Команды, показанные в следующих разделах, указывают параметр --anyauth
для curl
. Для URL-адресов, требующих проверки подлинности согласованием, curl
автоматически обнаруживает и использует сгенерированный токен Kerberos вместо имени пользователя и пароля.
Указание файла
Чтобы указать файл в hdfs:///product_review_data, выполните следующую команду:
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
. Конечные точки в кластерах, которые обновлены до накопительного пакета обновления 5, продолжают использовать root
в качестве имени пользователя для подключения к конечной точке шлюза. Это изменение не применяется к развертываниям, в которых используется проверка подлинности с помощью Active Directory. Подробные сведения см. в заметках о выпуске в разделе Учетные данные для доступа к службам через конечную точку шлюза.
Для конечных точек, не использующих корневую папку, выполните следующую команду 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
. Конечные точки в кластерах, которые обновлены до накопительного пакета обновления 5, продолжают использовать root
в качестве имени пользователя для подключения к конечной точке шлюза. Это изменение не применяется к развертываниям, в которых используется проверка подлинности с помощью Active Directory. Подробные сведения см. в заметках о выпуске в разделе Учетные данные для доступа к службам через конечную точку шлюза.
Для конечных точек, не использующих корневую папку, выполните следующую команду 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
. Конечные точки в кластерах, которые обновлены до накопительного пакета обновления 5, продолжают использовать root
в качестве имени пользователя для подключения к конечной точке шлюза. Это изменение не применяется к развертываниям, в которых используется проверка подлинности с помощью Active Directory. Подробные сведения см. в заметках о выпуске в разделе Учетные данные для доступа к службам через конечную точку шлюза.
Для конечных точек, не использующих корневую папку, выполните следующую команду 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'
Следующие шаги
Дополнительные сведения см. в статье "Знакомство с SQL Server Кластеры больших данных".