Подтвердить что ты не робот

Как перезаписать существующие файлы с помощью команды hadoop fs -copyToLocal

Можно ли каким-либо образом перезаписать существующие файлы, а при использовании HDFS:

hadoop fs -copyToLocal <HDFS PATH> <local path>
4b9b3361

Ответ 1

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

Так что -f вариант делает трюк для вас.

Он также работает и для -copyToLocal.

Ответ 2

Вы можете сначала удалить, а затем написать.

hadoop fs -rmr <path> удаляет все по заданному пути в hdfs, включая сам путь

rm -rf <path> удаляется в локальной файловой системе.

Убедитесь, что в каталоге нет другого файла.

Ответ 3

Я использовал приведенную ниже команду и помог:

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

но из put docs:

Скопируйте одиночный src или несколько srcs из локальной файловой системы в конечной файловой системы.

Ответ 4

Параметр Force не доступен ни для одной из команд (get/copytolocal).

Ниже приведены три варианта:

  1. Удалите файл на локальной машине с помощью команды rm и используйте copyToLocal/get.

  2. Переименуйте ваш локальный файл в новое имя, чтобы у вас был файл с тем же именем, что и в кластере. используйте для этого команду mv и команду get/copyTolocal.

  3. Переименуйте файл там на самом кластере и используйте copytolocal

    hadoop fs -mv [oldpath] [newpath]
    hadoop fs -copytolocal [newpath] .
    

Ответ 5

-f сделал трюк

Пример:

bin>hdfs dfs -put -f D:\DEV\hadoopsampledata\mydata.json /input

Ответ 6

Вы можете попробовать с distcp с -update. Главное преимущество - это обновление цели только при изменении файла.

hasoop distcp -update файл://источник hdfs://namenode/target

hadoop distcp -update  file:///home/hduser/pigSample/labfiles/SampleData/books.csv  hdfs://10.184.37.158:9000/yesB

Ответ 7

Вы можете попробовать следующее:

bin/hadoop fs -rm /path_of_the_file | grep "0" | bin/hadoop fs -put ~/input_path /output_path

Ответ 8

Я работаю.

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