在 CentOS 上实现 HDFS 容灾,一般不是靠“单台机器容灾”,而是从 集群架构、数据冗余、跨中心备份、故障切换 几个层面来做。下面按“常见做法 + 可落地方案”说明。
HDFS 默认 3 副本:
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
✅ 单节点宕机不影响数据
❌ 机房断电、集群整体故障不行
<property>
<name>net.topology.script.file.name</name>
<value>/etc/hadoop/rack-awareness.sh</value>
</property>
副本分布在不同机架,避免交换机故障。
使用 ZKFC + JournalNode
组件:
关键配置:
dfs.ha.namenodes.ns1 = nn1,nn2
dfs.namenode.shared.edits.dir = qjournal://jn1:8485;jn2:8485;jn3:8485/ns1
dfs.ha.automatic-failover.enabled = true
✅ NameNode 故障自动切换
✅ CentOS 上非常成熟
把 A 中心 HDFS 同步到 B 中心
hadoop distcp hdfs://clusterA:/data hdfs://clusterB:/data
建议:
-update -diff)✅ 成本低
❌ RPO 不是 0
打开快照:
hdfs dfsadmin -allowSnapshot /data
hdfs dfs -createSnapshot /data snap1
容灾时只同步变化数据,速度快。
多 NameService:
chronyd
NameNode 对时间敏感。
定期测试:
中小规模:
大规模:
如果你愿意,可以告诉我:
我可以直接给你一套 可执行的 CentOS 配置方案。