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

What happens on setting replication factor to 0

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

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

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

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

replication must be >= 1

当我们得到这个错误时:

为了改变HDFS文件的复制因子,我们需要使用命令hadoop fs -setrep <rep_factor> path,如果你在前面的命令中使用0作为复制因子,你会得到这个错误。您不能使用配置 xml 文件来更改 HDFS 中文件的复制因子,客户端配置 xml 文件中 dfs.replication 的值将用于将文件复制到 HDFS .

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

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