在 CentOS 上配置 HDFS 副本数(replication),一般分为 集群级默认配置 和 目录/文件级配置 两种方式。下面按常见场景说明。
hdfs-site.xml路径通常为:
$HADOOP_HOME/etc/hadoop/hdfs-site.xml
或
/etc/hadoop/conf/hdfs-site.xml
添加或修改:
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
说明:
3 是默认副本数(生产环境常用)1stop-dfs.sh
start-dfs.sh
或
systemctl restart hadoop-hdfs-namenode
systemctl restart hadoop-hdfs-datanode
(取决于你是用脚本还是 systemd)
hdfs dfs -stat %r /path/to/file
hdfs dfs -setrep -R 2 /user/hadoop/data
参数说明:
-R:递归(对目录有效)2:目标副本数hdfs dfs -D dfs.replication=2 -put localfile /hdfs/path/
hdfs storagepolicies -setStoragePolicy -path /cold/data -policy COLD
COLD 策略默认副本数较低(如 2)
hdfs storagepolicies -getStoragePolicy -path /cold/data
副本数 ≤ DataNode 数量
hdfs dfsadmin -report
查看 DataNode 数量
单节点伪分布式
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
修改后旧文件不会自动变
必须用 -setrep
权限问题
sudo -u hdfs hdfs dfs -setrep ...
# 修改默认副本为 2
vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
# 重启
stop-dfs.sh
start-dfs.sh
# 修改已有数据
hdfs dfs -setrep -R 2 /
如果你能贴出:
我可以给你更精确的建议配置。