我尝试将副本因子从 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
对于面临相同问题的任何人,只需运行以下命令:
hdfs dfs -setrep -R 1 /
因为当块复制不足并且您将复制因子从 3 更改为 1(或任何更改(时,这些更改适用于将在 HDFS 中创建的新文件,而不是旧文件。
您必须自行更改旧文件的复制因子。
在 hdfs 中更改文件的复制因子有两种情况:
-
当文件已存在时,在这种情况下,您需要转到该特定文件或目录并更改复制因子。要更改目录的复制因子:
hdfs dfs -setrep -R -w 2 /tmp
OR 用于更改特定文件的复制因子
hdfs dfs –setrep –w 3 /tmp/logs/file.txt
-
当您要对当前不存在且将在将来创建的新文件进行此复制因子更改时。对于他们,您需要转到hdfs-site.xml并在那里更改复制因子
< property> < name>dfs.replication< /name> < value>2< /value> < /property>