我尝试将副本因素从3更改为1并重新启动服务。但复制因子保持不变
有人可以建议我如何更改现有文件的复制因子吗?
这是fsck报告:
Minimally replicated blocks: 45 (100.0 %)
Over-replicated blocks: 0 (0.0 %)
Under-replicated blocks: 45 (100.0 %)
Mis-replicated blocks: 0 (0.0 %)
Default replication factor: 1
Average block replication: 2.0
Corrupt blocks: 0
Missing replicas: 45 (33.333332 %)
DecommissionedReplicas: 45
Number of data-nodes: 2
Number of racks: 1
答案 0 :(得分:0)
对于遇到同样问题的任何人,只需运行此命令:
hdfs dfs -setrep -R 1 /
因为当块复制不足并且您将复制因子从3更改为1(或任何更改)时,这些更改将针对将在HDFS中创建的新文件,而不是旧文件。
您必须自行更改旧文件的复制因子。
答案 1 :(得分:0)
更改hdfs中文件的复制因子有两种方案:
文件已经存在时,在这种情况下,您需要转到该特定文件或目录并更改复制因子。要更改目录的复制因子:
hdfs dfs -setrep -R -w 2 /tmp
或用于更改特定文件的复制因子
hdfs dfs –setrep –w 3 /tmp/logs/file.txt
当您要对当前不存在且将在将来创建的新文件进行复制因子更改时。对于他们,您需要转到hdfs-site.xml并在那里更改复制因子
< property>
< name>dfs.replication< /name>
< value>2< /value>
< /property>