温馨提示×

centos hdfs副本数怎么调

小樊
41
2026-09-30 13:31:34
栏目: 智能运维

在 CentOS 上调整 HDFS 副本数(replication),一般分为 全局默认副本数 和 指定文件/目录副本数 两种情况。


一、修改 HDFS 全局默认副本数(所有新写入文件生效)

1. 修改 hdfs-site.xml

编辑 HDFS 配置文件(路径视安装方式而定,常见如下):

vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml

或(CDH/HDP 常见):

vi /etc/hadoop/conf/hdfs-site.xml

添加或修改:

<property>
    <name>dfs.replication</name>
    <value>2</value>   <!-- 修改为想要的副本数 -->
</property>

副本数不能超过 DataNode 数量

2. 重启 HDFS(使配置生效)

stop-dfs.sh
start-dfs.sh

或(系统服务方式):

systemctl restart hadoop-hdfs-namenode
systemctl restart hadoop-hdfs-datanode

二、对已存在的文件 / 目录修改副本数

1. 修改单个文件

hdfs dfs -setrep 2 /user/hadoop/test.txt

2. 修改目录(递归)

hdfs dfs -setrep -R 2 /user/hadoop/

-R 表示递归(包括子目录)


三、查看当前副本数

查看文件副本数

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

查看目录平均副本数

hdfs dfs -du -h /user/hadoop/

四、客户端级别临时修改(不推荐长期使用)

hdfs dfs -D dfs.replication=1 -put file.txt /tmp/

只对本次操作生效。


五、注意事项(很重要)

  1. 副本数 > DataNode 数
    • HDFS 不会报错,但副本永远不满
  2. 减少副本数
    • 立刻释放多余块,无需重启
  3. 生产环境
    • 默认 3 副本是安全和性能的折中

如果你能告诉我:

  • 你是 CDH / HDP / 原生 Hadoop
  • 想调 全局还是某个目录
  • DataNode 有几台

我可以给你更精确的操作命令。

0 踩