web-dev-qa-db-fra.com

hdfs dfs -put avec écraser?

J'utilise

hdfs dfs -put myfile mypath

et pour certains fichiers, je reçois

put: 'myfile': File Exists
  • cela signifie-t-il qu'il existe un fichier du même nom ou que le même fichier exact (taille, contenu) existe déjà?
  • comment puis-je spécifier une option -overwrite ici?

Merci!

23
ℕʘʘḆḽḘ

put: 'myfile': File Exists

Signifie que le fichier nommé "monfichier" existe déjà dans hdfs. Vous ne pouvez pas avoir plusieurs fichiers du même nom dans hdfs

Vous pouvez l'écraser à l'aide de hadoop fs -put -f /path_to_local /path_to_hdfs

32
Sumit

Vous pouvez remplacer votre fichier dans hdfs à l'aide de la commande -f. Par exemple

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

OR

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

Cela a bien fonctionné pour moi. Cependant, la commande -f ne fonctionnera pas en cas de commande get ou copyToLocal. cochez cette question

37
salmanbw
  1. Un fichier du même nom existe à l'emplacement où vous essayez d'écrire.
  2. Vous pouvez remplacer en spécifiant l'indicateur -f.
5
Pradeep Gollakota

Juste des mises à jour de cette réponse, dans Hadoop 3.X la commande est un peu différente

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