Hadoop 更改HDFS中现有文件的复制
我尝试将副本系数从3更改为1,并重新启动服务。但复制因子保持不变 有人能建议我如何更改现有文件的复制系数吗 这是fsck报告:Hadoop 更改HDFS中现有文件的复制,hadoop,hdfs,replication,ambari,fsck,Hadoop,Hdfs,Replication,Ambari,Fsck,我尝试将副本系数从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
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
或用于更改特定文件的复制因子
hdfs dfs –setrep –w 3 /tmp/logs/file.txt
< property>
< name>dfs.replication< /name>
< value>2< /value>
< /property>
dfs.replication
2
在将配置更改为具有复制因子1后,您重新启动了哪些服务?@slashpai我正在使用Ambari,因此如果您更改复制因子,则会收到重新启动所需服务的通知。所以我重新启动了它们。当时不知道还能做什么。但现在我解决了这个问题,我只需要使用CLI命令来更改整个根目录的复制因子,一旦我对该命令进行了rand,它就已经设置好了。没有未复制的块。现在问题解决了。