如何解决Hadoop / HDFS:put命令失败-没有这样的文件或目录
我不知道为什么不能将文件从一个目录移动到另一个目录。我可以查看文件的内容,但是不能将同一文件移动到另一个目录。
作品精细度:
hadoop fs -cat /user/hadoopusr/project-data.txt
不起作用:
hadoop fs -put /user/hadoopusr/project-data.txt /user/hadoopusr/Projects/MarketAnalysis
我收到一条No such file or directory
错误消息。怎么了?请帮忙。谢谢!
解决方法
我们可以从here中了解有关-put
命令的信息:
此命令用于将文件从本地文件系统复制到 HDFS文件系统。该命令类似于–copyFromLocal命令。 如果文件已经存在,则此命令将不起作用,除非–f 标志被赋予命令。如果 复制之前文件已经存在
这清楚说明了为什么它不起作用并抛出No such file or directory
消息。这是因为在本地文件系统的当前目录中找不到名称为project-data.txt
的文件。
您计划在HDFS的内部目录 之间移动文件,因此,除了使用-put
参数进行移动外,我们还可以简单地使用-mv
参数在我们的本地文件系统中!
在我自己的HDFS上对其进行了如下测试:
- 在HDFS中创建源目录和目标目录
hadoop fs -mkdir source_dir dest_dir
- 在源目录下创建一个空(出于测试目的)文件
hadoop fs -touch source_dir/test.txt
- 将空文件移至目标目录
hadoop fs -mv source_dir/test.txt dest_dir/test.txt
(请注意,不需要文件路径和目标目录的/user/username/
部分,因为默认情况下,HDFS是您工作所在的目录。您还应该注意,目标的完整路径,其中包含文件名。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。