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. LA sistema de archivos distribuido es un sistema de archivos que gestiona 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 64 MB. Archivos que desea almacenan 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 comando fsck para listar los bloques que componen cada archivo en HDFS, de la siguiente manera:

% Fsck hadoop / -limas -blocks

Debido 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. Varias interfaces de Hadoop construido en la cima de la API de Java son ahora de uso común (y ocultan Java), pero la más sencilla es la línea de comandos interface- utilizar la línea de comandos para interactuar con HDFS en los ejemplos proporcionados.

Se accede a la carcasa del sistema de archivos Hadoop ejecutando una forma del comando Hadoop. Todos los comandos de Hadoop se invocan por el script bin / Hadoop. (Para recuperar una descripción de todos los comandos de Hadoop, ejecute la secuencia de comandos hadoop sin especificar ningún argumento.) El comando hadoop tiene la sintaxis

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), Así que usted puede personalizar fácilmente la configuración de su entorno Hadoop. Las opciones genéricas y opciones de comandos 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 de recursos uniformes (URI) como argumentos. LA 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 de esquema es HDFS, y para el sistema de archivos local, el nombre de esquema es archivo. Si no especifica un nombre de esquema, el valor predeterminado es el nombre de esquema que se especifica en el archivo de configuración. Un archivo o directorio en HDFS se pueden especificar de una manera completamente calificado, como en este ejemplo:

hdfs: // namenodehost / padre / hijo

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

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 fs hadoop "? los fs comando es obsoleto en la serie liberación Hadoop 0.2, pero aún funciona en Hadoop 2. Uso dfs HDFS en su lugar.

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

$ Hadoop HDFS dfs -mkdir / user /Entrar Nombre de Usuario

Por ejemplo, para crear un directorio llamado " joanna # 148 ;, ejecutar este mkdir comando:

$ Hadoop HDFS dfs -mkdir / user / joanna

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

$ Hadoop HDFS dfs -Poner Nombre del archivo / user /Entrar Nombre de Usuario

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

$ Hadoop HDFS dfs -Poner data.txt / user / joanna

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

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

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

  • La columna 1 muestra la modo de archivo (" d " para el directorio y " - " de archivo normal, seguido por los permisos). Los tres tipos de permisos - leer (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 es ignorado porque no se puede ejecutar un archivo en HDFS. Los permisos se agrupan por el propietario, el grupo y público (todos los demás).

  • Columna 2 muestra el factor de replicación de archivos. (El concepto de replicación no se aplica a los directorios.) Los bloques que conforman 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. Puede especificar el factor de replicación cuando se crea el archivo o más tarde, 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 inicia el NameNode, usted es el superusuario por ahora. Este es un grupo especial - los usuarios habituales tendrán su ID de usuario pertenece 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 se trata de 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 no se especifica el nombre de esquema) 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 / user /Entrar Nombre de Usuario

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

$ Hadoop HDFS dfs -rm Nombre del archivo / user /Entrar Nombre de Usuario

Utilice la hadoop dfs HDFS -Ayuda comando para obtener ayuda detallada para cada opción.




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