在centos环境下搭建高可用性hdfs (ha) 集群,需要配置两个namenode节点,利用zookeeper进行状态监控,并配置journalnode实现元数据同步。以下步骤详细阐述了搭建过程:
一、前期准备
- 集群规划: 确定集群中每个节点的角色 (NameNode, Secondary NameNode, DataNode) 及其网络配置。 确保网络连接畅通,并预留足够的资源。
-
备份配置: 备份现有的HDFS配置文件 (
hdfs-site.xml,core-site.xml等),以便在必要时回滚到非HA模式。
二、配置HDFS HA
-
修改
hdfs-site.xml: 在每个NameNode节点上修改hdfs-site.xml文件,添加或修改以下配置项 (根据实际情况调整主机名和端口号):
dfs.nameservices mycluster dfs.ha.namenodes.mycluster nn1,nn2 dfs.namenode.rpc-address.mycluster.nn1 master:8020 dfs.namenode.rpc-address.mycluster.nn2 slave1:8020 dfs.namenode.http-address.mycluster.nn1 master:50070 dfs.namenode.http-address.mycluster.nn2 slave1:50070 dfs.namenode.shared.edits.dir qjournal://master:8485;slave1:8485;slave2:8485/mycluster dfs.journalnode.edits.dir /home/hadoop-sny/bigdata/dfs/journal/data dfs.client.failover.proxy.provider.mycluster org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
其中,master 和 slave1 替换为实际的NameNode主机名,slave2 为JournalNode主机名。 确保JournalNode的端口号 (8485) 与配置一致。
-
修改
core-site.xml: 确保core-site.xml文件中配置了正确的HDFS文件系统路径 (fs.defaultFS) 等必要属性。
三、配置ZooKeeper
在所有参与HA的节点上安装并配置ZooKeeper。ZooKeeper用于协调NameNode的活动和故障转移。 这部分配置细节取决于你选择的ZooKeeper安装方式和版本。
四、启动HDFS集群
-
格式化NameNode: 在其中一个NameNode节点上执行
hdfs namenode -format命令进行格式化 (仅需执行一次)。 -
启动HDFS: 使用
start-dfs.sh脚本启动整个HDFS集群。
五、验证高可用性
-
检查状态: 使用
hdfs dfsadmin -report命令检查集群状态,确保两个NameNode都处于活动状态 (Active 或 Standby)。 - 模拟故障: 模拟其中一个NameNode节点故障 (例如,停止其服务),观察备用NameNode是否能够自动接管。
六、关键注意事项
- JournalNode配置: JournalNode集群的正确配置对于NameNode之间的数据一致性至关重要。确保JournalNode节点数量满足高可用性要求,并具有足够的存储空间和带宽。
- 网络连接: 确保所有节点之间网络连接稳定可靠,避免网络故障影响HA功能。
- 防火墙: 确保防火墙允许HDFS和ZooKeeper所需的端口通信。
- 监控: 定期监控NameNode和JournalNode的状态,及时发现并解决潜在问题。
此步骤仅提供基本配置,实际应用中可能需要根据具体环境进行调整。 建议参考Hadoop官方文档获取更详细的配置信息。










