具有不同复制因子的簇之间的hadoop distcp

问题描述:

作为一些背景,我们有2个目前用作生产和开发的簇。作为其中的一部分,我们正在将生产集群中的文件(使用hadoop distcp -update)从生产过程生成(即,它也可以作为灾难恢复集群)复制到开发集群。具有不同复制因子的簇之间的hadoop distcp

的Hadoop版本是在两个群集相同的:Hadoop的2.6.0-cdh5.12.1

然而,发展集群不仅具有实时集群的存储容量的约65%。为了解决这个问题,我们有一个默认的复制因子3,用于活动,2用于开发。

我注意到从活动复制到开发的文件的复制因子为3.我已经做了一些阅读,并认为这是它应该如何行为,即使它不是我如何喜欢它的行为。

我有过这样的背面有两个问题:

  • 从一些研究已经表明,-setrep可以用来交副本,但-D dfs.replication = X可作为的一部分复制命令。有没有人有任何这些选项的经验?
  • 有没有人需要处理这种情况,并找到了不同的解决方案?

感谢您的帮助。

我已经做了一些测试,并做了以下内容:

  • 通过先前复制,因此具有3复制因子和使用的文件从hadoop distcp -update $SOURCE $TARGET改变了DistCp使用命令hadoop distctp -D dfs.replication=2 -update $SOURCE $TARGET
  • 运行hdfs dfs -setrep -w 2 $TARGET修改复制因子。

磁盘空间已经开始下降,所以我认为这是成功的。也许有一天我可以声称我知道我在做什么。