Compartir a través de


Empleo de curl para cargar datos en HDFS en Clústeres de macrodatos de SQL Server

Se aplica a: SQL Server 2019 (15.x)

En este artículo se explica cómo usar curl para cargar datos en HDFS en Clústeres de macrodatos de SQL Server 2019.

Importante

El complemento Clústeres de macrodatos de Microsoft SQL Server 2019 se va a retirar. La compatibilidad con Clústeres de macrodatos de SQL Server 2019 finalizará el 28 de febrero de 2025. Todos los usuarios existentes de SQL Server 2019 con Software Assurance serán totalmente compatibles con la plataforma, y el software se seguirá conservando a través de actualizaciones acumulativas de SQL Server hasta ese momento. Para más información, consulte la entrada de blog sobre el anuncio y Opciones de macrodatos en la plataforma Microsoft SQL Server.

Requisitos previos

Obtener la dirección IP externa del servicio

WebHDFS se inicia cuando se completa la implementación; su acceso se realiza a través de Knox. El punto de conexión de Knox se expone a través de un servicio de Kubernetes denominado gateway-svc-external. Para crear la dirección URL de WebHDFS necesaria para cargar o descargar archivos, necesita la dirección IP externa del servicio gateway-svc-external y el nombre del clúster de macrodatos. Para obtener la dirección IP externa del servicio gateway-svc-external, ejecute el siguiente comando:

kubectl get service gateway-svc-external -n <big data cluster name> -o json | jq -r .status.loadBalancer.ingress[0].ip

Nota

<big data cluster name> es el nombre del clúster que ha especificado en el archivo de configuración de implementación. El nombre predeterminado es mssql-cluster.

Construcción de la dirección URL para acceder a WebHDFS

Ahora, puede construir la dirección URL para acceder a WebHDFS como se indica a continuación:

https://<gateway-svc-external service external IP address>:30443/gateway/default/webhdfs/v1/

Por ejemplo:

https://13.66.190.205:30443/gateway/default/webhdfs/v1/

Autenticación con Active Directory

Para las implementaciones con Active Directory, use el parámetro de autenticación con curl con la autenticación Negotiate.

Para usar curl con la autenticación de Active Directory, ejecute este comando:

kinit <username>

El comando genera un token de Kerberos para que lo use curl. Los comandos mostrados en las secciones siguientes especifican el parámetro --anyauth para curl. En el caso de las direcciones URL que necesitan la autenticación Negotiate, curl detecta y usa automáticamente el token de Kerberos generado en lugar del nombre de usuario y la contraseña para autenticarse en las direcciones URL.

Enumeración de un archivo

Para mostrar el archivo de hdfs:///product_review_data, use el siguiente comando de 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'

A partir de SQL Server 2019 (15.x) CU 5, al implementar un nuevo clúster con autenticación básica todos los puntos de conexión incluida la puerta de enlace utilizan AZDATA_USERNAME y AZDATA_PASSWORD. Los puntos de conexión de los clústeres que se actualizan a CU 5 continúan usando root como nombre de usuario para conectarse al punto de conexión de puerta de enlace. Este cambio no se aplica a las implementaciones que utilizan la autenticación de Active Directory. Consulte Credenciales para acceder a los servicios a través del punto de conexión de puerta de enlace en las notas de la versión.

En el caso de los puntos de conexión que no usan la raíz, use el siguiente comando de 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'

Colocación de un archivo local en HDFS

Para colocar un nuevo archivo test. csv desde el directorio local en el directorio product_review_data, use el siguiente comando de curl (se requiere el parámetro 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'

A partir de SQL Server 2019 (15.x) CU 5, al implementar un nuevo clúster con autenticación básica todos los puntos de conexión incluida la puerta de enlace utilizan AZDATA_USERNAME y AZDATA_PASSWORD. Los puntos de conexión de los clústeres que se actualizan a CU 5 continúan usando root como nombre de usuario para conectarse al punto de conexión de puerta de enlace. Este cambio no se aplica a las implementaciones que utilizan la autenticación de Active Directory. Consulte Credenciales para acceder a los servicios a través del punto de conexión de puerta de enlace en las notas de la versión.

En el caso de los puntos de conexión que no usan la raíz, use el siguiente comando de 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'

Creación de un directorio

Para crear un directorio test en hdfs:///, use el siguiente comando:

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'

A partir de SQL Server 2019 (15.x) CU 5, al implementar un nuevo clúster con autenticación básica todos los puntos de conexión incluida la puerta de enlace utilizan AZDATA_USERNAME y AZDATA_PASSWORD. Los puntos de conexión de los clústeres que se actualizan a CU 5 continúan usando root como nombre de usuario para conectarse al punto de conexión de puerta de enlace. Este cambio no se aplica a las implementaciones que utilizan la autenticación de Active Directory. Consulte Credenciales para acceder a los servicios a través del punto de conexión de puerta de enlace en las notas de la versión.

En el caso de los puntos de conexión que no usan la raíz, use el siguiente comando de 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'

Pasos siguientes

Para obtener más información, consulte Presentación de Clústeres de macrodatos de SQL Server.