在 CentOS 上调整 HDFS 副本数(replication),通常有以下几种方式,按“作用范围”从全局默认到单文件/目录说明:
编辑 HDFS 配置文件(通常在):
$HADOOP_HOME/etc/hadoop/hdfs-site.xml
或
/etc/hadoop/conf/hdfs-site.xml
修改或添加:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
常见值:
- 开发环境:1
- 生产环境:3
stop-dfs.sh
start-dfs.sh
或(Hadoop 3+)
$HADOOP_HOME/sbin/stop-dfs.sh
$HADOOP_HOME/sbin/start-dfs.sh
✅ 只对“新建文件”生效,不影响已有文件
hdfs dfs -setrep -w 2 /user/hadoop/test.txt
hdfs dfs -setrep -R 2 /user/hadoop/
参数说明:
-R:递归-w:等待副本调整完成hdfs dfs -D dfs.replication=2 -put localfile /hdfs/path/
hdfs dfs -stat %r /user/hadoop/test.txt
http://namenode-ip:9870
(Hadoop 3) 或
http://namenode-ip:50070
(Hadoop 2)
副本数 ≤ DataNode 数量
hdfs dfsadmin -report
如果 DataNode 只有 2 台,副本数设 3 会一直 Under-Replicated
修改后不会立刻减少副本
-w 等待完成生产环境不建议副本数 = 1
如果你愿意,可以告诉我:
我可以给你最合适的具体命令。