有什么方法可以覆盖现有文件,同时应对HDFS
使用:
hadoop fs -copyToLocal <HDFS PATH> <local path>
fs -copyFromLocal -f $LOCAL_MOUNT_SRC_PATH/yourfilename.txt your_hdfs_file-path
所以-f
选项可以为您解决问题。
它也适用于-copyToLocal
。
您可以先删除,然后再写入。
hadoop fs -rmr <path>
删除 hdfs 中给定路径下的所有内容,包括路径本身
rm -rf <path>
在本地文件系统中删除。
确保目录中没有其他文件。
我使用了下面的命令,它有帮助:
hadoop fs -put -f <<local path>> <<hdfs>>
但从放置文档:
将单个 src 或多个 src 从本地文件系统复制到目标文件系统。
-f
选项成功了
例子:
bin>hdfs dfs -put -f D:\DEV\hadoopsampledata\mydata.json /input
您可以尝试使用带有 -update 的 distcp 。主要优点是仅当文件发生更改时才会更新目标。
hadoop distcp -update file://source hdfs://namenode/target
hadoop distcp -update file:///home/hduser/pigSample/labfiles/SampleData/books.csv hdfs://10.184.37.158:9000/yesB
你可以试试这个:
bin/hadoop fs -rm /path_of_the_file | grep "0" | bin/hadoop fs -put ~/input_path /output_path
-f 对我有用。
hdfs dfs -copyFromLocal -f [LOCALFILEPATH] [HDFSFILEPAHT]