gpt4 book ai didi

hadoop - 'distcp' 和 'distcp -update' 之间的区别?

转载 作者:可可西里 更新时间:2023-11-01 14:15:53 31 4
gpt4 key购买 nike

有什么区别

hadoop distcp

hadoop distcp -update

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

最佳答案

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

这在文档中有点困惑,因为 distcp 的默认特性是如果文件存在则跳过以防止冲突。

来自文档:

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

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

我还应该详细说明一下,并说明无论大小是否匹配,distcp -overwrite 都会覆盖文件。这是一个破坏性的过程,因此请确保您确实想要这样做。

一些很好的例子可以在这里找到:http://hadoop.apache.org/common/docs/r0.19.2/distcp.html#uo

我还想举例说明我在两个集群之间的同步操作中所做的事情:

hadoop distcp -pugp -i -delete -update hftp://hdfs-nn1:50070/clustera hdfs://hdfs-nn2:9000/clustera

这将更新 hdfs-nn2 中与 hdfs-nn1 大小不匹配的所有文件,并删除任何无关文件。如果使用 .Trash,那么任何删除的文件都会放在调用 distcp 的用户的垃圾箱中。

我会稍微试验一下,这样您就可以看到各种命令的效果,因为当您不小心删除数 TB 的数据时会很痛苦,所以一定要使用您的回收站。

关于hadoop - 'distcp' 和 'distcp -update' 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4610964/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com