将复制因子设置为0会发生什么

时间:2015-04-14 13:59:48

标签: hadoop

在多节点集群中我们可以将hadoop块复制因子设置为0吗?

这可能吗?如果可能那么会发生什么?

如果我们在单个伪模式集群中将hadoop块复制因子设置为0会发生什么?

1 个答案:

答案 0 :(得分:5)

在单节点和多节点配置中,您无法将文件的复制因子设置为零。执行将失败,出现以下错误。

replication must be >= 1

当我们收到此错误时:

要在HDFS中更改文件的复制因子,我们需要使用命令hadoop fs -setrep <rep_factor> path,如果在上一个命令中使用0作为复制因子,则会出现此错误。您不能使用配置xml文件来更改HDFS中文件的复制因子,如果将文件复制到HDFS,将使用客户端配置xml文件中的dfs.replication值。

即使您在将文件复制到HDFS时将dfs.replication指定为客户端配置中的0或命令本身(作为hadoop fs -Ddfs.replication=0 -put testfile.txt /),命令也会失败,但您将收到如下奇怪的消息

put: file /testfile.txt._COPYING_ on client X.X.X.X