0

如果我使用 distcp 在 2 个集群中复制数据,它是复制所有副本还是仅复制 1 个数据副本并将其复制到新集群上?

例如,我尝试从复制因子(RF)为 3 的集群复制 3gb 数据。 distcp 会复制完整的 3gb 数据,还是知道由于 RF 为 3,它只需要移动 1gb(一个副本)数据。最后在目标集群上,它查看 RF 并相应地复制数据。

4

2 回答 2

4

原始数据大小很重要。如果原始数据为 1 GB,则复制因子 = 3 最多需要 3x1 GB。将数据从一个集群复制到另一个集群时,原始数据很重要。只有 1 GB 的原始数据会被复制到目标集群。

HDFS 在内部处理块的复制。它会注意到集群上的新数据并相应地复制那些复制不足的块,即副本比RF少。

于 2013-03-20T19:36:57.733 回答
1

当您使用 distcp 进行复制时,只会复制/复制实际数据(即数据的 1 个副本)。复制将由框架处理,就像将新数据写入 HDFS 时的处理方式一样。除此之外,如果 distcp 在 2 个集群之间,您还可以指定是否要在源处保留复制因子。

欲了解更多信息:
https ://hadoop.apache.org/docs/stable1/distcp.html

于 2014-01-07T12:32:35.713 回答