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

时间:2017-12-18 10:46:44

标签: hadoop replication-factor

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

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

但是,开发群集仅占实时群集存储容量的约65%。为了解决这个问题,我们有一个默认复制因子3为live,2为开发。

我注意到从正常复制到开发的文件复制因子为3.我已经做了一些阅读并认为它应该是如何表现的,即使它不是我喜欢的方式它表现得很好。

我背后有两个问题:

  • 从某些研究中可以看出-setrep可以在复制后使用,但-D dfs.replication = x可以用作复制命令的一部分。有没有人有这些选择的任何经验?
  • 以前是否有人必须处理这种情况并找到不同的解决方案?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我做了一些测试并完成了以下工作:

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

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