Operaciones con archivos
Del mismo modo, puedes utilizar el parámetro -ls
para listar los archivos en el directorio especificado:
/home/hadoop/hadoop/bin/hdfs dfs -ls /user/hadoop
Los archivos listados aquí pueden variar según el entorno del experimento.
Si necesitas ver el contenido de un archivo, puedes utilizar el parámetro cat
. Lo más fácil de pensar es especificar directamente la ruta del archivo en HDFS. Si necesitas comparar directorios locales con archivos en HDFS, puedes especificar sus rutas por separado. Sin embargo, debe tenerse en cuenta que el directorio local debe comenzar con el indicador file://
, seguido de la ruta del archivo (por ejemplo, /home/hadoop/.bashrc
, no olvides el /
al principio). De lo contrario, cualquier ruta especificada aquí se reconocerá por defecto como la ruta en HDFS:
/home/hadoop/hadoop/bin/hdfs dfs -cat file:///home/hadoop/.bashrc /user/hadoop/mapred-env.sh
La salida es la siguiente:
hadoop:~$ hdfs dfs -cat file:///home/hadoop/.bashrc /user/hadoop/mapred-env.sh
## ~/.bashrc: executed by bash(1) for non-login shells.
## see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
## for examples
## If not running interactively, don't do anything
case $- in
...
Si necesitas copiar un archivo a otra ruta, puedes utilizar el parámetro cp
:
/home/hadoop/hadoop/bin/hdfs dfs -cp /user/hadoop/mapred-env.sh /user/hadoop/copied_file.txt
Del mismo modo, si necesitas mover un archivo, utiliza el parámetro mv
. Esto es básicamente lo mismo que el formato del comando del sistema de archivos de Linux:
/home/hadoop/hadoop/bin/hdfs dfs -mv /user/hadoop/mapred-env.sh /moved_file.txt
Utiliza el parámetro lsr
para listar el contenido del directorio actual, incluyendo el contenido de los subdirectorios. La salida es la siguiente:
hdfs dfs -lsr /
Si quieres agregar algún nuevo contenido a un archivo en HDFS, puedes utilizar el parámetro appendToFile
. Y, al especificar la ruta del archivo local que se va a agregar, puedes especificar múltiples rutas. El último parámetro será el objeto al que se va a agregar. El archivo debe existir en HDFS, de lo contrario se generará un error:
echo 1 >> a.txt
echo 2 >> b.txt
/home/hadoop/hadoop/bin/hdfs dfs -appendToFile a.txt b.txt /user/hadoop/mapred-env.sh
Puedes utilizar el parámetro tail
para ver el contenido de la cola del archivo (la parte final del archivo) para confirmar si la adición fue exitosa:
/home/hadoop/hadoop/bin/hdfs dfs -tail /user/hadoop/mapred-env.sh
Ver la salida del comando tail
:
hadoop:~$ echo 1 >> a.txt
echo 2 >> b.txt
hdfs dfs -appendToFile a.txt b.txt /user/hadoop/mapred-env.sh
hadoop:~$ hdfs dfs -tail /user/hadoop/mapred-env.sh
1
2
Si necesitas eliminar un archivo o un directorio, utiliza el parámetro rm
. Este parámetro también puede ir acompañado de -r
y -f
, que tienen los mismos significados que en el comando del sistema de archivos de Linux rm
:
/home/hadoop/hadoop/bin/hdfs dfs -rm /moved_file.txt
El contenido del archivo moved_file.txt
se eliminará y el comando devolverá la siguiente salida 'Deleted /moved_file.txt'