配置HDFS高可用性需部署多个NameNode节点并借助ZooKeeper实现自动故障切换,核心步骤如下:
- 集群规划:准备至少3台服务器,部署2个NameNode(1个Active、1个Standby)和3个JournalNode(奇数个避免脑裂)。
- 配置ZooKeeper:安装并启动ZooKeeper集群,用于监控NameNode状态并触发故障切换。
- 修改配置文件:
- hdfs-site.xml:配置NameNode的Active/Standby状态、共享编辑日志路径(JournalNode集群地址)、客户端故障转移代理等。
- core-site.xml:设置ZooKeeper集群地址及默认文件系统路径。
- 初始化与启动服务:
- 在Active NameNode上格式化元数据:
hdfs namenode -format。
- 启动JournalNode服务:
hdfs --daemon start journalnode。
- 启动Active和Standby NameNode:
hdfs --daemon start namenode。
- 验证高可用性:通过
hdfs haadmin -getServiceState nn1/nn2命令检查节点状态,确认Active/Standby正常切换。
- 客户端配置:在客户端
core-site.xml中指定高可用集群地址fs.defaultFS=hdfs://mycluster。
关键组件作用:
- JournalNode:存储NameNode的编辑日志,确保元数据一致性。
- ZooKeeper:监控NameNode状态,实现自动故障检测与切换。
- DataNode:数据块多副本存储,保障数据可靠性。
注意事项:需配置SSH免密登录、定期监控集群状态,并通过hdfs dfsadmin -report验证数据节点健康。