HDFS的副本数量配置

众所周知,hdfs的默认副本数量是3个,配置在/etc/hadoop/conf/hdfs-site.xml

  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>

我们也可以通过hdfs dfs -ls /path/to/file 命令查看hdfs上的文件:

文件类型会在第二列显示副本数量3,第五列显示文件大小,目录因为是由namenode维护的,所以没有副本数量,显示为-

如果想修改全局副本数量,只需要修改上面的hdfs-site.xml中的配置然后重启hdfs即可,修改完成后:

1. 若hdfs中副本数量没有达到配置的数量则会自动进行备份,此时datanode节点之间会大量复制文件,集群性能会暂时受到影响。

2. 若hdfs中副本数量多于配置的数量,比如原来是3,修改为2,则已存在的副本不会被删除,只会对后续新增的文件使用新的配置。如果希望修改配置后,原有多出来的副本释放空间则可以执行balancer命令,后面会详细介绍。

当然也可以指定文件/目录设置副本数量,执行下面的命令:

hdfs dfs -setrep -w 5 [-R] /path/to/file

其中5就是修改后的备份数量,-R为可选项若后面的参数为目录则子文件夹全部都按此策略备份。

还有一个HDFS的命令可以查看目录下的数据块详细比例以及副本数量分布,我这里使用的是hadoop3版本,所以会多个擦除码(Erasure Coded)这一栏:

hdfs fsck /tmp

猜你喜欢

转载自blog.csdn.net/wsdc0521/article/details/102859900