shell - comandos - comando hadoop fs-put
tail hdfs (3)
Como usuario hdfs
, ¿tiene derechos de acceso a /root/
(en su hdd local) ?. Usualmente no lo haces. Debe copiar el file1.txt
a un lugar donde el usuario de hdfs
tenga derechos de lectura.
Tratar:
cp /root/MyHadoop/file1.txt /tmp
chown hdfs:hdfs /tmp/file1.txt
sudo -u hdfs hadoop fs -put /tmp/file1.txt /
--- editar:
Eche un vistazo a la respuesta más limpia de roman-nikitchenko .
Construí un entorno Hadoop de un solo nodo en CentOS utilizando el repositorio CDH de Cloudera. Cuando quiero copiar un archivo local a HDFS, utilizo el comando:
sudo -u hdfs hadoop fs -put /root/MyHadoop/file1.txt /
Pero, el resultado me deprimió:
put: ''/root/MyHadoop/file1.txt'': No such file or directory
Estoy seguro de que este archivo existe.
Por favor, ayúdame, gracias!
Tuve la misma situación y aquí está mi solución:
HADOOP_USER_NAME=hdfs hdfs fs -put /root/MyHadoop/file1.txt /
Ventajas:
- No necesitas
sudo
- En realidad, no necesita los ''hdfs'' de usuario local apropiados.
- No necesita copiar nada ni cambiar los permisos debido a los puntos anteriores.
intente crear un directorio en el HDFS usando usig: $ hadoop fs -mkdir your_dir
y luego póngalo en él $ hadoop fs -put -put /root/MyHadoop/file1.txt your_dir