温馨提示×

linux hdfs如何设副本数

小樊
41
2026-09-13 16:40:39
栏目: 智能运维

在 Linux 环境下使用 HDFS(Hadoop Distributed File System) 设置副本数,可以从全局默认副本数针对某个文件/目录副本数两个层面来配置。


一、全局默认副本数(对所有文件生效)

方法 1:修改 hdfs-site.xml

编辑 Hadoop 配置文件(一般在 $HADOOP_HOME/etc/hadoop/hdfs-site.xml):

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

修改后需要重启 HDFS

stop-dfs.sh
start-dfs.sh

默认副本数通常是 3,生产环境一般 3 个,测试环境可设为 1。


二、只对某个文件或目录设置副本数

1️⃣ 上传文件时指定副本数

hdfs dfs -D dfs.replication=2 -put localfile /user/hadoop/

2️⃣ 修改已存在文件的副本数

hdfs dfs -setrep -w 2 /user/hadoop/file.txt
  • -w:等待复制完成
  • 目录也生效(会递归修改):
hdfs dfs -setrep -R 2 /user/hadoop/

三、查看副本数

hdfs dfs -stat %r /user/hadoop/file.txt

或:

hdfs fsck /user/hadoop/file.txt -files -blocks -replication

四、注意事项

  1. 副本数不能超过 DataNode 数量
    hdfs dfsadmin -report
    
  2. 修改 dfs.replication 只影响新写入的文件
  3. 已存在文件必须用 setrep 修改

如果你是想:

  • 单机伪分布式设 1 副本
  • 或 Hadoop 3 的 Erasure Coding
  • 或 YARN / HBase 副本

可以告诉我你的使用场景,我可以给你更具体的配置。

0