Utilisez curl pour charger des données dans HDFS sur Clusters Big Data SQL Server
S’applique à : SQL Server 2019 (15.x)
Cet article explique comment utiliser curl pour charger des données dans HDFS sur Clusters de Big Data SQL Server 2019.
Important
Le module complémentaire Clusters Big Data Microsoft SQL Server 2019 sera mis hors service. La prise en charge de la plateforme Clusters Big Data Microsoft SQL Server 2019 se terminera le 28 février 2025. Tous les utilisateurs existants de SQL Server 2019 avec Software Assurance seront entièrement pris en charge sur la plateforme, et le logiciel continuera à être maintenu par les mises à jour cumulatives SQL Server jusqu’à ce moment-là. Pour plus d’informations, consultez le billet de blog d’annonce et les Options Big Data sur la plateforme Microsoft SQL Server.
Prérequis
Obtenir l’adresse IP externe du service
WebHDFS démarre lorsque le déploiement est terminé et que son accès est passé par Knox. Le point de terminaison Knox est exposé via un service Kubernetes nommé gateway-svc-external. Pour créer l’URL WebHDFS nécessaire au téléchargement et au chargement des fichiers, vous avez besoin de l’adresse IP externe du service gateway-svc-external et du nom du cluster Big Data. Vous pouvez récupérer l’adresse IP externe du service gateway-svc-external en exécutant la commande suivante :
kubectl get service gateway-svc-external -n <big data cluster name> -o json | jq -r .status.loadBalancer.ingress[0].ip
Notes
<big data cluster name>
correspond au nom du cluster que vous avez spécifié dans le fichier de configuration du déploiement. Le nom par défaut est mssql-cluster
.
Construire l’URL pour accéder à WebHDFS
Vous pouvez maintenant construire l’URL pour accéder à WebHDFS de la façon suivante :
https://<gateway-svc-external service external IP address>:30443/gateway/default/webhdfs/v1/
Par exemple :
https://13.66.190.205:30443/gateway/default/webhdfs/v1/
Authentification auprès d’Active Directory
Pour les déploiements avec Active Directory, utilisez le paramètre d’authentification avec curl
avec l’authentification par négociation.
Pour utiliser curl
avec l’authentification Active Directory, exécutez la commande suivante :
kinit <username>
La commande génère un jeton Kerberos utilisable par curl
. Les commandes présentées dans les sections suivantes spécifient le paramètre --anyauth
pour curl
. Pour les URL qui nécessitent l’authentification par négociation, curl
détecte et utilise automatiquement le jeton Kerberos généré au lieu du nom d’utilisateur et du mot de passe pour s’authentifier auprès des URL.
Lister un fichier
Pour lister le fichier sous hdfs:///product_review_d, utilisez la commande curl suivante :
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'
À partir de SQL Server 2019 (15.x) CU 5, lorsque vous déployez un nouveau cluster avec l’authentification de base, tous les points de terminaison, dont la passerelle, utilisent AZDATA_USERNAME
et AZDATA_PASSWORD
. Les points de terminaison sur les clusters mis à niveau vers la CU 5 continuent à utiliser root
comme nom d’utilisateur pour se connecter au point de terminaison de la passerelle. Cette modification ne s’applique pas aux déploiements utilisant l’authentification Active Directory. Voir Informations d’identification pour l’accès aux services via le point de terminaison de passerelle dans les notes de publication.
Pour les points de terminaison qui n’utilisent pas la racine, utilisez la commande cURL suivante :
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'
Placer un fichier local dans HDFS
Pour déplacer un nouveau fichier test.csv du répertoire local vers le répertoire product_review_data, utilisez la commande curl suivante (le paramètre Content-Type est obligatoire) :
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'
À partir de SQL Server 2019 (15.x) CU 5, lorsque vous déployez un nouveau cluster avec l’authentification de base, tous les points de terminaison, dont la passerelle, utilisent AZDATA_USERNAME
et AZDATA_PASSWORD
. Les points de terminaison sur les clusters mis à niveau vers la CU 5 continuent à utiliser root
comme nom d’utilisateur pour se connecter au point de terminaison de la passerelle. Cette modification ne s’applique pas aux déploiements utilisant l’authentification Active Directory. Voir Informations d’identification pour l’accès aux services via le point de terminaison de passerelle dans les notes de publication.
Pour les points de terminaison qui n’utilisent pas la racine, utilisez la commande cURL suivante :
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'
Créer un répertoire
Pour créer un répertoire test sous hdfs:///
, utilisez la commande suivante :
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'
À partir de SQL Server 2019 (15.x) CU 5, lorsque vous déployez un nouveau cluster avec l’authentification de base, tous les points de terminaison, dont la passerelle, utilisent AZDATA_USERNAME
et AZDATA_PASSWORD
. Les points de terminaison sur les clusters mis à niveau vers la CU 5 continuent à utiliser root
comme nom d’utilisateur pour se connecter au point de terminaison de la passerelle. Cette modification ne s’applique pas aux déploiements utilisant l’authentification Active Directory. Voir Informations d’identification pour l’accès aux services via le point de terminaison de passerelle dans les notes de publication.
Pour les points de terminaison qui n’utilisent pas la racine, utilisez la commande cURL suivante :
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'
Étapes suivantes
Pour plus d’informations, consultez Présentation des Clusters Big Data SQL Server.