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

hadoop distcp between clusters with different replication factors

作为一些背景,我们有 2 个集群,目前用于生产和开发。作为其中的一部分,我们正在将文件(使用 hadoop distcp -update)从生产集群复制到开发集群,这些文件是由实时进程生成的(即它也有效地作为 DR 集群)。

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

然而,开发集群只有实时集群存储容量的65%左右。为了解决这个问题,我们有一个默认的复制因子 3 用于实时和 2 用于开发。

我注意到从实时复制到开发的文件的复制因子为 3。我读了一些书,认为这应该是它的行为方式,即使它不是我的方式'我喜欢它的行为。

我有两个问题:

感谢您的帮助。

我已经进行了一些测试并完成了以下操作:

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

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