如果我使用distcp复制2个集群中的数据,它是复制所有副本还是只复制1个数据副本并在新集群上复制它?
比如说,我尝试从复制因子(RF)为3的集群中复制3gb的数据.distcp会复制完整的3gb数据,还是知道因为RF是3,所以它只需要移动1gb(一份)数据。最后,在目标群集上,它会查看RF并相应地复制数据。
答案 0 :(得分:4)
原始数据大小很重要。如果原始数据为1 GB,则复制因子= 3时最多需要3x1 GB。将数据从一个群集复制到另一个群集时,原始数据很重要。只有原始的1 GB数据将被复制到目标群集。
HDFS在内部处理块的复制。它将注意到集群上的新数据并相应地复制这些块,这些块未被复制,即复制数少于RF。
答案 1 :(得分:1)
使用distcp进行复制时,只会复制/复制实际数据(即数据的1个副本)。复制将由框架处理,就像将新数据写入HDFS时的处理方式一样。除此之外,如果两个集群之间存在distcp,您还可以指定是否要在源处保留复制因子。