hdfs dfs -put with overwrite?

时间:2016-04-23 21:16:43

标签: hadoop hdfs

我正在使用

hdfs dfs -put myfile mypath

和我得到的一些文件

put: 'myfile': File Exists
  • 这是否意味着有一个同名的文件,或者是否意味着相同的文件(大小,内容)已经存在?
  • 如何在此处指定-overwrite选项?

谢谢!

4 个答案:

答案 0 :(得分:35)

您可以使用-f命令在hdfs中覆盖您的文件。例如

hadoop fs -put -f <localfile> <hdfsDir>

OR

hadoop fs -copyFromLocal -f <localfile> <hdfsDir>

它对我来说很好。但是-f命令在get或copyToLocal命令的情况下不起作用。 check this question

答案 1 :(得分:23)

put: 'myfile': File Exists

表示名为&#34; myfile&#34;的文件。已存在于hdfs中。您不能在hdfs

中拥有多个同名文件

您可以使用hadoop fs -put -f /path_to_local /path_to_hdfs

覆盖它

答案 2 :(得分:5)

  1. 您尝试写入的位置存在同名文件。
  2. 您可以通过指定-f标志来覆盖。

答案 3 :(得分:0)

仅对此答案进行更新,在Hadoop 3.X中,命令稍有不同

hdfs dfs -put -f /local/to/path hdfs://localhost:9870/users/XXX/folder/folder2