2013-03-20 148 views
0

如果我使用distcp复制2个群集中的数据,它是复制所有复制副本还是仅复制1个副本的数据并将其复制到新群集中?例如,我尝试从复制因子(RF)为3的群集中复制3gb的数据。distcp是否会复制完整的3gb数据,或者是否知道由于RF是3,它需要移动只有1GB(一个副本)的数据。最后在目标群集上查看RF并相应地复制数据。Hadoop distcp复制副本

回答

4

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

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

1

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

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