HDFS HA
未实现HA的namenode存在单点失效问题,即使能防止数据丢失,但不能避免一段时间的namenode未正常工作,集群未正常工作
一个新的namenode满足以下条件才可以开始为集群提供服务,导致冷启动时间需要30min,甚至更长
1) 将命名空间映像加载到内存中
2) 重演编辑日志
3) 接收到足够多datanode的数据块报告并退出安全模式
高可用HDFS架构实现:
1) 使用高可用的共享存储实现编辑日志的共享
2) datanode需要同时向两个namenode发送数据块处理报告,因为文件与数据块的映射关系存储在namenode内存中,而不是磁盘上
3) 使用故障切换和规避机制处理namenode的失效问题,这对用户是透明的
4) 备用namenode包含了辅助namenode的功能,并为活动namenode的命名空间设置周期性检查点
结果:
因为备用namenode内存中也持有最新的状态:包含最新的编辑日志条目和最新的数据块映射信息,所以只需要几十秒到一分钟就可以实现任务接管