Gestión de archivos con los comandos del sistema de archivos hadoop

HDFS es uno de los dos componentes principales de la Hadoop de armazón y el otro es el paradigma computacional conocido como MapReduce. UN sistema de archivos distribuido es un sistema de archivos que administra el almacenamiento a través de un clúster en red de las máquinas.

HDFS almacena los datos en bloques, unidades cuyo tamaño predeterminado es de 64 MB. Los archivos que desea almacenar en HDFS necesitan ser roto en pedazos de bloques de tamaño, que luego se almacenan de forma independiente en todo el clúster. Puede utilizar la línea de comandos fsck para listar los bloques que componen cada archivo en HDFS, de la siguiente manera:

% Fsck hadoop / -limas -blocks

Debido a Hadoop está escrito en Java, todas las interacciones con HDFS se gestionan a través de la API de Java. Tenga en cuenta, sin embargo, que no es necesario ser un gurú de Java para trabajar con archivos en HDFS. Hadoop varias interfaces integradas en la parte superior de la API de Java son ahora de uso común (y se esconden de Java), pero la más sencilla es la de línea de comandos interface- utilizar la línea de comandos para interactuar con HDFS en los ejemplos proporcionados.

Video: Gestión de directorios, comando DIR (MS-DOS) | Side Master

Se accede a la shell del sistema de archivos Hadoop mediante la ejecución de una forma del comando Hadoop. Todos los comandos de Hadoop son invocados por el script bin / Hadoop. (Para recuperar una descripción de todos los comandos de Hadoop, ejecuta el script hadoop sin especificar ningún argumento.) El comando tiene la sintaxis hadoop

hadoop [--config Confdir] [COMANDO] [GENERIC_OPTIONS] [opciones_del_comando]

los -config Confdir opción sobrescribe el directorio de configuración por defecto ($ HADOOP_HOME / conf), Por lo que puede personalizar fácilmente la configuración del entorno de Hadoop. Las opciones genéricas y opciones de comando son un conjunto común de opciones que son compatibles con varios comandos.

comandos de archivo Hadoop shell del sistema (para las interfaces de línea de comandos) tomar identificadores uniformes de recursos (URI) como argumentos. UN URI es una cadena de caracteres que se utilizan para identificar un nombre o un recurso web.

La cadena puede incluir una Nombre del esquema - un partido de clasificación para la naturaleza de la fuente de datos. Para HDFS, el nombre del esquema es hdfs, y para el sistema de archivos local, el nombre del esquema es el archivo. Si no se especifica un nombre de esquema, el valor predeterminado es el nombre del esquema que se especifica en el archivo de configuración. Un archivo o directorio en HDFS se pueden especificar de una manera totalmente calificado, como en este ejemplo:

Video: Sistema operativo Unix: El sistema de archivos I

hdfs: // namenodehost / padre / hijo

O puede ser simplemente / padre / hijo si los puntos de archivos de configuración para hdfs: // namenodehost.

Video: Linux CentOS 6 - Uso de los diferentes Comandos de Gestión de Archivos y Directorios

Los comandos de la shell del sistema de archivos de Hadoop, que son similares a los comandos de archivos de Linux, tienen la siguiente sintaxis general:

Hadoop HDFS DFS -file_cmd

Los lectores con alguna experiencia previa Hadoop podrían preguntar: “Pero ¿qué pasa con el comando hadoop fs?” La fs comando es obsoleto en la serie de lanzamientos Hadoop 0.2, pero aún funciona en Hadoop 2. Uso DFS HDFS en lugar.

Como era de esperar, se utiliza el mkdir comando para crear un directorio en HDFS, al igual que lo haría en Linux o en sistemas operativos basados ​​en Unix. Aunque HDFS tiene un directorio por defecto de trabajo, / Usuario / $ USER, dónde $ USUARIO es su nombre de usuario de inicio de sesión, es necesario crear por sí mismo mediante el uso de la sintaxis

$ Hadoop HDFS DFS -mkdir / usuario /login_user_name

Por ejemplo, para crear un directorio llamado “Joanna”, ejecute este mkdir mando:

$ Hadoop HDFS DFS -mkdir / usuario / Joanna

Usar la Hadoop poner comando para copiar un archivo del sistema de archivos local a HDFS:

$ Hadoop hdfs DFS -poner nombre del archivo /usuario/login_user_name

Por ejemplo, para copiar un archivo llamado datos.txt a este nuevo directorio, ejecute el siguiente poner mando:

$ Hadoop HDFS DFS -poner datos.txt / usuario / Joanna

Corre el ls comando para obtener una lista de archivos HDFS:

$ HDFS Hadoop dfs -ls .Found 2 itemsdrwxr-xr-x - Joanna supergrupo 0 30/6/2013 12:25 / user / joanna-rw-r - r-- 1 joanna supergrupo 118 30/06/2013 12: 15 /user/joanna/data.txt

El archivo de lista en sí se rompe como se describe en esta lista:

  • La columna 1 muestra la modo de archivo ( “D” para el directorio y “-” para el archivo normal, seguido de los permisos). Los tres tipos de permisos - lectura (r), escritura (w) y ejecución (x) - son los mismos que usted encuentra en Linux y sistemas basados ​​en Unix. El permiso de ejecución para un archivo se ignora porque no se puede ejecutar un archivo en HDFS. Los permisos se agrupan por el propietario, grupo, y público (todos los demás).

  • La columna 2 muestra el factor de replicación de archivos. (El concepto de replicación no se aplica a los directorios.) Los bloques que componen un archivo en HDFS se replican para asegurar la tolerancia a fallos. los factor de replicación, o el número de réplicas que se mantienen para un archivo específico, se puede configurar. Se puede especificar el factor de replicación cuando se crea el archivo o después, a través de su aplicación.

  • Las columnas 3 y 4 muestran el archivo propietario y grupo. supergrupo es el nombre del grupo de superusuarios, y una superusuario es el usuario con la misma identidad que el proceso NameNode. Si se inicia el NameNode, usted es el superusuario por ahora. Este es un grupo especial - Los usuarios comunes tendrán sus identificadores de usuario pertenecen a un grupo sin características especiales - un grupo que se define simplemente por un administrador de Hadoop.

  • La columna 5 muestra el tamaño del archivo, en bytes, o 0 si es un directorio.

  • Columnas 6 y 7 muestran la fecha y hora de la última modificación, respectivamente.

  • Columna 8 muestra el nombre no calificado (lo que significa que el nombre del esquema no se especifica) del archivo o directorio.

Utilice el comando get Hadoop para copiar un archivo de HDFS a su sistema de archivos local:

$ Hadoop hdfs DFS-get nombre del archivo /usuario/login_user_name

Usar la Hadoop rm comando para eliminar un archivo o un directorio vacío:

Video: Borrar directorios y ficheros aplicando el comando RD (MS-DOS) | Side Master

$ Hadoop hdfs DFS -rm nombre del archivo /usuario/login_user_name

Usar la hadoop DFS HDFS -ayuda comando para obtener ayuda detallada para cada opción.

Artículos Relacionados