Uso de la CLI de HDFS con Data Lake Storage Gen2
Puede acceder y administrar los datos en la cuenta de almacenamiento mediante una interfaz de línea de comandos como lo haría con un Sistema de archivos distribuido de Hadoop (HDFS). En este artículo se dan algunos ejemplos que le ayudarán a empezar a trabajar.
HDInsight proporciona acceso al contenedor distribuido que se adjunta localmente a los nodos de ejecución. Puede acceder a este contenedor mediante el shell que interactúa directamente con HDFS y con otros sistemas de archivos que admiten Hadoop.
Para más información sobre la CLI de HDFS, consulte la documentación oficial y la Guía de permisos de HDFS.
Nota:
Si usa Azure Databricks, en lugar de HDInsight, y quiere interactuar con los datos mediante una interfaz de línea de comandos, puede usar la CLI de Databricks para interactuar con el sistema de archivos de Databricks. Consulte la CLI de Databricks.
Usar la CLI de HDFS con un clúster de HDInsight Hadoop en Linux
En primer lugar, establezca el acceso remoto a los servicios. Si selecciona SSH el ejemplo de código de PowerShell tendría el siguiente aspecto:
#Connect to the cluster via SSH.
ssh sshuser@clustername-ssh.azurehdinsight.net
#Execute basic HDFS commands. Display the hierarchy.
hdfs dfs -ls /
#Create a sample directory.
hdfs dfs -mkdir /samplefolder
La cadena de conexión se encuentra en la sección "SSH e inicio de sesión del clúster" de la hoja del clúster de HDInsight en Azure Portal. Las credenciales SSH se especificaron en el momento de la creación del clúster
Importante
La facturación del clúster de HDInsight se inicia una vez creado el clúster y se detiene cuando se elimina. Se facturan por minuto realizando una prorrata, por lo que siempre debe eliminar aquellos que ya no se estén utilizando. Para obtener información sobre cómo eliminar un clúster, consulte nuestro artículo sobre el tema. Sin embargo, los datos almacenados en una cuenta de almacenamiento que tiene Data Lake Storage Gen2 habilitado continúan incluso después de eliminar un clúster de HDInsight.
Crear un contenedor
hdfs dfs -D "fs.azure.createRemoteFileSystemDuringInitialization=true" -ls abfs://<container-name>@<storage-account-name>.dfs.core.windows.net/
Reemplace el marcador de posición
<container-name>
por el nombre que desee asignar al contenedor.Reemplace el marcador de posición
<storage-account-name>
por el nombre de la cuenta de almacenamiento.
Obtener una lista de archivos o directorios
hdfs dfs -ls <path>
Reemplace el marcador de posición <path>
por el URI del contenedor o de la carpeta de contenedor.
Por ejemplo: hdfs dfs -ls abfs://my-file-system@mystorageaccount.dfs.core.windows.net/my-directory-name
Creación de un directorio
hdfs dfs -mkdir [-p] <path>
Reemplace el marcador de posición <path>
por el nombre del contenedor raíz o de una carpeta dentro del contenedor.
Por ejemplo: hdfs dfs -mkdir abfs://my-file-system@mystorageaccount.dfs.core.windows.net/
Eliminar un archivo o un directorio
hdfs dfs -rm <path>
Reemplace el marcador de posición <path>
por el URI del archivo o de la carpeta que desee eliminar.
Por ejemplo: hdfs dfs -rmdir abfs://my-file-system@mystorageaccount.dfs.core.windows.net/my-directory-name/my-file-name
Mostrar las listas de control de acceso (ACL) de archivos y directorios
hdfs dfs -getfacl [-R] <path>
Ejemplo:
hdfs dfs -getfacl -R /dir
Consulte getfacl.
Definir listas de control de acceso de archivos y directorios
hdfs dfs -setfacl [-R] [-b|-k -m|-x <acl_spec> <path>]|[--set <acl_spec> <path>]
Ejemplo:
hdfs dfs -setfacl -m user:hadoop:rw- /file
Consulte setfacl.
Cambiar el propietario de los archivos
hdfs dfs -chown [-R] <new_owner>:<users_group> <URI>
Consulte chown.
Cambiar la asociación del grupo de archivos
hdfs dfs -chgrp [-R] <group> <URI>
Consulte chgrp.
Cambiar los permisos de archivos
hdfs dfs -chmod [-R] <mode> <URI>
Consulte chmod.
Puede consultar una lista completa de comandos en el sitio web de la guía de comandos shell del sistema de archivos de Apache Hadoop 2.4.1.