Comment réécrire les fichiers existants en utilisant la commande hadoop fs-copyToLocal

y a-t-il un moyen d'écraser les fichiers existants, tout en faisant face à HDFS utilisation:

hadoop fs -copyToLocal <HDFS PATH> <local path>
37
demandé sur Keshav Pradeep Ramanath 2013-05-08 13:50:58

8 réponses

fs -copyFromLocal -f $LOCAL_MOUNT_SRC_PATH/yourfilename.txt your_hdfs_file-path

-f option fait l'affaire pour vous.

cela fonctionne aussi pour -copyToLocal.

38
répondu Arijit Sen 2014-07-25 16:49:16

vous pouvez d'abord supprimer, puis écrire.

hadoop fs -rmr <path> supprime tout ce qui est sous un chemin donné dans hdfs, y compris le chemin lui-même

rm -rf <path> supprime dans le système de fichiers local.

assurez-vous qu'il n'y a pas d'autre fichier dans le répertoire.

12
répondu smttsp 2016-11-29 20:03:04

j'ai utilisé la commande ci-dessous et ça a aidé:

hadoop fs -put -f <<local path>> <<hdfs>>

mais de put docs:

copier un src, ou plusieurs CSR du système de fichiers local vers le système de fichiers de destination.

9
répondu Sohan 2015-08-05 13:33:07

L'option Force n'est pas disponible pour aucune des commandes (get/copytolocal).

voici quelques options

option 1 .

Supprimer le fichier sur localmachine rm la commande.

et utiliser copyToLocal/get

option 2

ou renommez votre fichier local en nouveau nom de sorte que vous puissiez avoir le fichier avec le même nom que sur cluster. utilisez mv commande pour cela.

et utilisez get/copyTolocal commande

option 3

renommer le fichier sur le cluster lui-même et utiliser copytolocal

hadoop fs -mv [oldpath] [newpath]
hadoop fs -copytolocal [newpath] .
1
répondu Balaswamy Vaddeman 2013-05-16 06:47:14

-f option a fait le tour

exemple:

bin>hdfs dfs -put -f D:\DEV\hadoopsampledata\mydata.json /input
1
répondu tthreetorch 2017-07-27 21:10:18

Vous pouvez essayer avec distcp avec-update . Le principal avantage est qu'il sera mettre à jour la cible seulement quand il y a un changement dans le fichier.

hadoop distcp -fichier de mise à jour://source hdfs://namenode/cible

hadoop distcp -update  file:///home/hduser/pigSample/labfiles/SampleData/books.csv  hdfs://10.184.37.158:9000/yesB
0
répondu sterin jacob 2016-06-16 08:10:11

Vous pouvez essayer ceci :

bin/hadoop fs -rm /path_of_the_file | grep "0" | bin/hadoop fs -put ~/input_path /output_path
-1
répondu Tariq 2017-10-11 10:21:28

- f me travailler.

hdfs dfs-copyFromLocal-f [LOCALFILEPATH] [HDFSFILEPAHT]

-2
répondu Robin Wang 2016-08-12 02:55:58