在多节点集群中我们可以将hadoop块复制因子设置为0吗?
这可能吗?如果可能那么会发生什么?
如果我们在单个伪模式集群中将hadoop块复制因子设置为0会发生什么?
答案 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