在 CentOS 上配置 HDFS 副本数(replication),可以从集群级(默认)和目录/文件级两个层面来设置。下面按常见方式说明。
hdfs-site.xml在 NameNode 所在节点修改:
vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
添加或修改:
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
一般默认是 3,生产环境常用 3;测试环境可设为 1 或 2
stop-dfs.sh
start-dfs.sh
或(Hadoop 3+)
$HADOOP_HOME/sbin/stop-dfs.sh
$HADOOP_HOME/sbin/start-dfs.sh
⚠️ 修改后只对新建文件生效,已有文件不会自动改副本数。
hdfs dfs -setrep -R 2 /user/hadoop
-R:递归2:副本数/user/hadoop:HDFS 路径hdfs dfs -setrep 1 /test/file.txt
hdfs dfs -ls /test/file.txt
输出中第 2 列即为副本数。
在提交任务或操作时指定:
hdfs dfs -Ddfs.replication=2 -put file.txt /tmp/
hdfs dfsadmin -report
| 场景 | 推荐副本数 |
|---|---|
| 生产环境 | 3 |
| 测试环境 | 1~2 |
| 单节点伪分布式 | 1 |
如果你愿意,可以告诉我:
我可以给你更精确的配置示例。