确保CentOS上HDFS高可用性需配置多个NameNode节点、ZooKeeper集群及JournalNode,核心步骤如下:
准备环境
配置NameNode高可用
hdfs-site.xml:
dfs.nameservices为集群名称(如mycluster)。dfs.ha.namenodes.mycluster为NameNode标识(如nn1,nn2)。dfs.namenode.rpc-address和dfs.namenode.http-address,分别指定Active和Standby NameNode的RPC和HTTP地址。dfs.namenode.shared.edits.dir为JournalNode集群地址(如qjournal://node1:8485;node2:8485;node3:8485/mycluster),用于元数据同步。dfs.ha.automatic-failover.enabled=true。部署ZooKeeper集群(可选但推荐)
zoo.cfg,指定集群节点及端口(如server.1=node1:2181;server.2=node2:2181;server.3=node3:2181)。./zkServer.sh start。启动服务并验证
hdfs namenode -format。hadoop-daemon.sh start journalnode。start-dfs.sh),再在Standby NameNode执行hdfs namenode -bootstrapStandby同步元数据。hdfs dfsadmin -report查看NameNode状态,确认Active/Standby切换正常。安全加固
dfs.ha.fencing.methods为sshfence,并指定SSH私钥路径,确保故障转移时安全终止原Active NameNode进程。关键组件说明:
通过以上配置,可实现CentOS环境下HDFS的高可用性,保障服务连续性。