Operaciones del sistema de archivos en Azure Data Lake Storage Gen1 mediante el uso de la API de REST
En este artículo aprenderá a usar las API de REST WebHDFS y las API de REST de Data Lake Storage Gen1 para realizar operaciones del sistema de archivos en Azure Data Lake Storage Gen1. Para instrucciones sobre cómo realizar operaciones de administración de cuentas en Data Lake Storage Gen1 con la API de REST, consulte Operaciones de administración de cuentas en Data Lake Storage Gen1 con la API de REST.
Requisitos previos
Una suscripción de Azure. Consulte Obtención de una versión de evaluación gratuita.
Cuenta de Azure Data Lake Storage Gen1. Siga las instrucciones de Introducción a Azure Data Lake Storage Gen1 con Azure Portal.
cURL . En este artículo se usa cURL para demostrar cómo realizar llamadas de la API de REST en una cuenta de Data Lake Storage Gen1.
Cómo autenticar mediante Microsoft Entra ID?
Puede usar dos enfoques para autenticarse mediante Microsoft Entra ID.
- Para la autenticación del usuario final para la aplicación (interactiva), consulte el artículo sobre la autenticación del usuario final con Data Lake Storage Gen1 mediante el SDK de .NET.
- Para la autenticación entre servicios para la aplicación (no interactiva), consulte el artículo sobre la autenticación entre servicios con Data Lake Storage Gen1 mediante el SDK de .NET.
Crear carpetas
Esta operación se basa en la llamada de la API de REST de WebHDFS que se define aquí.
Use el siguiente comando cURL. Reemplace <nombre_del_almacén> por el nombre de cuenta de Data Lake Storage Gen1.
curl -i -X PUT -H "Authorization: Bearer <REDACTED>" -d "" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/?op=MKDIRS'
En el comando anterior, reemplace <REDACTED
> por el token de autorización que recuperó anteriormente. Este comando crea un directorio denominado mytempdir bajo la carpeta raíz de su cuenta de Data Lake Storage Gen1.
Si la operación se completa correctamente, verá una respuesta similar al fragmento de código siguiente:
{"boolean":true}
Lista de carpetas
Esta operación se basa en la llamada de la API de REST de WebHDFS que se define aquí.
Use el siguiente comando cURL. Reemplace <nombre_del_almacén> por el nombre de cuenta de Data Lake Storage Gen1.
curl -i -X GET -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS'
En el comando anterior, reemplace <REDACTED
> por el token de autorización que recuperó anteriormente.
Si la operación se completa correctamente, verá una respuesta similar al fragmento de código siguiente:
{
"FileStatuses": {
"FileStatus": [{
"length": 0,
"pathSuffix": "mytempdir",
"type": "DIRECTORY",
"blockSize": 268435456,
"accessTime": 1458324719512,
"modificationTime": 1458324719512,
"replication": 0,
"permission": "777",
"owner": "<GUID>",
"group": "<GUID>"
}]
}
}
Carga de datos
Esta operación se basa en la llamada de la API de REST de WebHDFS que se define aquí.
Use el siguiente comando cURL. Reemplace <nombre_del_almacén> por el nombre de cuenta de Data Lake Storage Gen1.
curl -i -X PUT -L -T 'C:\temp\list.txt' -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/list.txt?op=CREATE'
En la sintaxis anterior, el parámetro -T es la ubicación del archivo que se va a cargar.
La salida será similar al fragmento de código siguiente:
HTTP/1.1 307 Temporary Redirect
...
Location: https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/list.txt?op=CREATE&write=true
...
Content-Length: 0
HTTP/1.1 100 Continue
HTTP/1.1 201 Created
...
Lectura de datos
Esta operación se basa en la llamada de la API de REST de WebHDFS que se define aquí.
La lectura de datos desde una cuenta de Data Lake Storage Gen1 es un proceso de dos pasos.
- Primero, envíe una solicitud GET en el punto de conexión
https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN
. Esta llamada devolverá una ubicación a la que se debe enviar la siguiente solicitud GET. - Después, envíe la solicitud GET en el punto de conexión
https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN&read=true
. Esta llamada muestra el contenido del archivo.
Sin embargo, como no existe ninguna diferencia en los parámetros de entrada entre el primer y el segundo paso, puede usar el parámetro -L
para enviar la primera solicitud. La opción -L
combina dos solicitudes en una y hace que cURL vuelva a realizar la solicitud en la nueva ubicación. Por último, se muestra la salida de todas las llamadas de solicitud, como se muestra en el fragmento de código siguiente. Reemplace <nombre_del_almacén> por el nombre de cuenta de Data Lake Storage Gen1.
curl -i -L GET -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=OPEN'
Debería ver una salida similar al siguiente fragmento de código:
HTTP/1.1 307 Temporary Redirect
...
Location: https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/somerandomfile.txt?op=OPEN&read=true
...
HTTP/1.1 200 OK
...
Hello, Data Lake Store user!
Cambio del nombre de un archivo
Esta operación se basa en la llamada de la API de REST de WebHDFS que se define aquí.
Para cambiar el nombre de un archivo, use el siguiente comando cURL. Reemplace <nombre_del_almacén> por el nombre de cuenta de Data Lake Storage Gen1.
curl -i -X PUT -H "Authorization: Bearer <REDACTED>" -d "" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile.txt?op=RENAME&destination=/mytempdir/myinputfile1.txt'
Debería ver una salida similar al siguiente fragmento de código:
HTTP/1.1 200 OK
...
{"boolean":true}
Eliminación de un archivo
Esta operación se basa en la llamada de la API de REST de WebHDFS que se define aquí.
Para eliminar un archivo, use el siguiente comando cURL. Reemplace <nombre_del_almacén> por el nombre de cuenta de Data Lake Storage Gen1.
curl -i -X DELETE -H "Authorization: Bearer <REDACTED>" 'https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/mytempdir/myinputfile1.txt?op=DELETE'
Debe ver algo parecido a lo siguiente:
HTTP/1.1 200 OK
...
{"boolean":true}
Pasos siguientes
- Account management operations on Data Lake Storage Gen1 using REST API (Operaciones de administración de cuentas en Data Lake Storage Gen1 mediante la API de REST).
Consulte también
- Azure Data Lake Storage Gen1 REST API Reference (Referencia sobre la API de REST de Azure Data Lake Storage Gen1)
- Abrir aplicaciones de macrodatos de código abierto que funcionan con Azure Data Lake Storage Gen1