具有不同复制因子的集群之间的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。我读了一些书,认为这应该是它的行为方式,即使它不是我的方式'我喜欢它的行为。
我有两个问题:
- 一些研究表明,-setrep 可用于 post 复制,但 -D dfs.replication=x 可用作复制命令的一部分。有没有人对这些选项有任何经验?
- 有没有人曾经遇到过这种情况并找到了不同的解决方案?
感谢您的帮助。
我已经进行了一些测试并完成了以下操作:
- 将 distcp 命令从
hadoop distcp -update $SOURCE $TARGET
更改为 hadoop distctp -D dfs.replication=2 -update $SOURCE $TARGET
- 运行 通过先前复制的文件,因此复制因子为 3,并使用
hdfs dfs -setrep -w 2 $TARGET
修改复制因子。
磁盘 space 开始下降,所以我认为这是成功的。也许有一天我可以声称我知道我在做什么。
作为一些背景,我们有 2 个集群,目前用于生产和开发。作为其中的一部分,我们正在将文件(使用 hadoop distcp -update)从生产集群复制到开发集群,这些文件是由实时进程生成的(即它也有效地作为 DR 集群)。
两个集群上的 Hadoop 版本相同:Hadoop 2.6.0-cdh5.12.1
然而,开发集群只有实时集群存储容量的65%左右。为了解决这个问题,我们有一个默认的复制因子 3 用于实时和 2 用于开发。
我注意到从实时复制到开发的文件的复制因子为 3。我读了一些书,认为这应该是它的行为方式,即使它不是我的方式'我喜欢它的行为。
我有两个问题:
- 一些研究表明,-setrep 可用于 post 复制,但 -D dfs.replication=x 可用作复制命令的一部分。有没有人对这些选项有任何经验?
- 有没有人曾经遇到过这种情况并找到了不同的解决方案?
感谢您的帮助。
我已经进行了一些测试并完成了以下操作:
- 将 distcp 命令从
hadoop distcp -update $SOURCE $TARGET
更改为hadoop distctp -D dfs.replication=2 -update $SOURCE $TARGET
- 运行 通过先前复制的文件,因此复制因子为 3,并使用
hdfs dfs -setrep -w 2 $TARGET
修改复制因子。
磁盘 space 开始下降,所以我认为这是成功的。也许有一天我可以声称我知道我在做什么。