更新时间:2020-11-12 来源:黑马程序员 浏览量:
在HDFS分布式文件系统中,NameNode是系统的核心节点,它存储了各类元数据信息,并负责管理文件系统的命名空间和客户端对文件的访问。但是,在Hadoop1.0版本中,NameNode只有一个,一旦这个NameNode发生故障,就会导致整个Hadoop集群不可用,也就是发生了单点故障问题。
为了解决单点故障问题,Hadoop2.0中的HDFS中增加了对高可用的支持。在高可用的HDFS集群中,通常有两台或者两台以上的机器充当NameNode,在任意时间内,都要保证至少有一台机器处于活动(Active)状态,一台机器处于备用(Standby)状态。处于活动状态的NameNode负责处理客户端请求,而处于备用状态的NameNode则处于“随时待命”状态。一旦处于活动状态NameNode节点发生故障,那么处于备用状态的NameNode会立即接管它的任务并开始处理客户端请求,保证业务不会出现明显中断,不影响系统的正常对外服务。接下来,通过一张图来描述HDFS的高可用架构,如图1所示。
图1 HDFS的高可用架构
图1所示的高可用架构中,共包含了两个NameNode,其中一个处于活动状态,一个处于备用状态,活跃状态的NameNode将更新的数据写入共享存储系统中,备用状态的NameNode会一直监听共享存储系统,一旦发现有新的数据,就会立即从共享存储系统中将这些数据加载到自己内存中,从而保证与活跃状态的数据同步。
Zookeeper是一种在HDFS高可用集群中集中提供自动故障转移功能的服务,它为每个NameNode都分配了一个故障恢复控制器(Zookeeper Failover Controller,简称ZKFC),该控制器用于监控NameNode的健康状态,并通过“心跳”方式定期和Zookeeper保持通信。一旦NameNode发生故障,Zookeeper会通知备用状态的NameNode启动,使其成为活动状态去处理客户端请求,从而实现高可用。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19