Hadoop 与x27之间的差异;distcp&x27;和';distcp-更新';?

Hadoop 与x27之间的差异;distcp&x27;和';distcp-更新';?,hadoop,mapreduce,hdfs,Hadoop,Mapreduce,Hdfs,两者的区别是什么 hadoop distcp 及 他们两个都会做同样的工作,只是我们对他们的称呼略有不同。它们都不会覆盖目标中已存在的文件。那么,在两组不同的命令中有什么意义呢?distcp和distcp-update之间的区别是,默认情况下,distcp跳过文件,而如果src大小不同于dst大小,“distcp-update”将更新文件 文档中有点混乱,因为distcp的默认特性是在存在文件时跳过,以防止冲突 来自文档: 如前所述,这不是“同步”操作。检查的唯一标准是源文件和目标文件的大小;

两者的区别是什么

hadoop distcp


他们两个都会做同样的工作,只是我们对他们的称呼略有不同。它们都不会覆盖目标中已存在的文件。那么,在两组不同的命令中有什么意义呢?

distcp和distcp-update之间的区别是,默认情况下,distcp跳过文件,而如果src大小不同于dst大小,“distcp-update”将更新文件

文档中有点混乱,因为distcp的默认特性是在存在文件时跳过,以防止冲突

来自文档:

如前所述,这不是“同步”操作。检查的唯一标准是源文件和目标文件的大小;如果它们不同,则源文件将替换目标文件

请记住,
-update
不像rsync那样是delta-xfer算法,它只执行大小检查,当文件大小相同但数据不同时,这并不完美

我还应该详细说明一些,并解释
distcp-overwrite
将覆盖文件,无论大小是否匹配。这是一个破坏性的过程,所以要确保你真的想这样做

以下是一些很好的例子:

我还想举一个例子,说明我在两个集群之间的同步操作中所做的工作:

hadoop distcp -pugp -i -delete -update hftp://hdfs-nn1:50070/clustera hdfs://hdfs-nn2:9000/clustera
这将更新hdfs-nn2中与hdfs-nn1大小不匹配的所有文件,并删除任何无关文件。如果使用.Trash,则删除的任何文件都将放在调用distcp的用户的垃圾箱中


我会尝试一下,这样您就可以看到各种命令的效果,因为当您意外地清除TBs数据时,这可能会很痛苦,所以一定要使用您的垃圾箱。

对于我来说,distcp-更新有时会在群集忙时失败非常好的解释,谢谢!特别喜欢两个集群之间的“同步”过程!
hadoop distcp -pugp -i -delete -update hftp://hdfs-nn1:50070/clustera hdfs://hdfs-nn2:9000/clustera