HDFS降低了复制因子

Car*_*gan 9 replication hadoop hdfs

我已经将复制因子从3减少到1,但是没有看到来自namenode或datanode之间的任何活动来删除过度复制的HDFS文件块.有没有办法监视或强制复制作业?

Cha*_*guy 21

更改dfs.replication仅适用于您创建的新文件,但不会修改现有文件的复制因子.

要更改已存在的文件的复制因子,可以运行以下命令,该命令将以递归方式运行在HDFS中的所有文件中:

hadoop dfs -setrep -w 1 -R /
Run Code Online (Sandbox Code Playgroud)

  • @zeekvfu,实际上,最后发布的apache hdfs必须是:hdfs dfs -setrep -w 2 -R / (2认同)

小智 5

当您将默认复制因子从3更改为cloudera manager时说2

Cloudera Manager(CDH 5.0.2) -> HDFS -> Configuration -> View and Edit -> Service-Wide -> Replication -> Replication Factor (dfs.replication) -> 2
Run Code Online (Sandbox Code Playgroud)

然后,只写入的新数据将为每个块提供2个副本.

请用

hdfs dfs -setrep 2 /
Run Code Online (Sandbox Code Playgroud)

如果要更改所有现有数据的复制因子,请在命令行(通常是具有HDFS网关角色的节点)上.此命令以递归方式更改根目录/下所有文件的复制因子.

句法:

hdfs dfs -setrep [-R] [-w] <numReplicas> <path>

where 

-w flag requests that the command wait for the replication to complete and can take a very long time

-R flag is just for backwards compatibility and has no effect
Run Code Online (Sandbox Code Playgroud)

参考:

http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.2.0-cdh5.0.0-beta-2/hadoop-project-dist/hadoop-common/FileSystemShell.html#setrep