hdfs dfs -put with overwrite?

ℕʘʘ*_*ḆḽḘ 26 hadoop hdfs

我在用

hdfs dfs -put myfile mypath
Run Code Online (Sandbox Code Playgroud)

对于我得到的一些文件

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

谢谢!

sal*_*nbw 37

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

hadoop fs -put -f <localfile> <hdfsDir>
Run Code Online (Sandbox Code Playgroud)

要么

hadoop fs -copyFromLocal -f <localfile> <hdfsDir>
Run Code Online (Sandbox Code Playgroud)

它对我来说很好.但是-f命令在get或copyToLocal命令的情况下不起作用.检查这个问题


Sum*_*mit 34

put: 'myfile': File Exists

意味着,名为"myfile"的文件已存在于hdfs中.您不能在hdfs中拥有多个同名文件

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

  • 那么`hdfs dfs -put -f输出输出`不起作用?我找到的消息说它确实如此 (4认同)
  • 接受的答案是错误的.我刚刚测试了hdfs dfs -put -f,它运行得很好. (2认同)

Pra*_*ota 5

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