更改hdfs中现有文件的复制

oogrdqng  于 2021-06-01  发布在  Hadoop
关注(0)|答案(2)|浏览(365)

我试着将复制系数从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
nkhmeac6

nkhmeac61#

在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>
8aqjt8rx

8aqjt8rx2#

对于面临相同问题的任何人,只需运行以下命令:

hdfs dfs -setrep -R 1 /

因为当数据块复制不足,并且您将复制因子从3更改为1(或任何更改)时,这些更改是针对将在hdfs中创建的新文件的,而不是针对旧文件的。
您必须自己更改旧文件的复制系数。

相关问题