comando hadoop fs-put
construí um ambiente Hadoop com um único nó em CentOS usando o repositório Cloudera CDH. Quando quero copiar um ficheiro local para HDFS, usei o comando:
sudo -u hdfs hadoop fs -put /root/MyHadoop/file1.txt /
mas, o resultado deprimiu-me:
put: '/root/MyHadoop/file1.txt': No such file or directory
Tenho a certeza que este ficheiro existe.
Por favor,ajuda-me, obrigado!
22
Author: Matthew Murdoch, 2013-08-28
3 answers
Como utilizador hdfs
, tem direitos de acesso a {[[2]} (no seu hdd local)?. Normalmente não.
Você deve copiar file1.txt
para um lugar onde hdfs
o usuário tem direitos de leitura.
Tenta:
cp /root/MyHadoop/file1.txt /tmp
chown hdfs:hdfs /tmp/file1.txt
sudo -u hdfs hadoop fs -put /tmp/file1.txt /
- - - editar:
Veja a resposta de roman-nikitchenko. 22
Author: Alfonso Nishikawa, 2017-05-23 12:32:31
Tive a mesma situação e aqui está a minha solução:
HADOOP_USER_NAME=hdfs hdfs fs -put /root/MyHadoop/file1.txt /
Vantagens:
-
Não precisas.
- não é necessário nenhum utilizador local apropriado 'hdfs'.
- Você não precisa copiar nada ou alterar as permissões por causa de pontos anteriores.
16
Author: Roman Nikitchenko, 2013-11-15 13:23:57
Tente criar uma dir no HDFS por usig: $ hadoop fs -mkdir your_dir
e depois metê-lo nela.$ hadoop fs -put -put /root/MyHadoop/file1.txt your_dir
5
Author: elkoo, 2014-02-26 08:48:48