2013-03-20 143 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