请解释Hadoop通过哪些机制实现数据的高可用性保障?
考察说明
考查对Hadoop分布式存储和计算中高可用设计原理的理解。
回答思路
- 【回答框架 1】Hadoop的数据高可用主要依赖HDFS的冗余副本机制,默认副本数为3,数据块被分散存储在不同机架的DataNode上,机架感知策略确保副本分布在不同机架,防止机架级故障导致数据丢失。
- 【回答框架 2】NameNode是高可用核心,通过Active/Standby架构和共享编辑日志(如QJM或NFS)实现元数据同步,ZKFC自动故障转移,确保NameNode单点故障时快速切换,避免元数据丢失。
- 【回答框架 3】DataNode通过心跳和块报告向NameNode汇报状态,NameNode检测到DataNode失效后,会启动副本复制流程,将缺失的副本重新复制到其他健康节点,维持副本数达到期望值。
- 【回答框架 4】对于计算层,YARN ResourceManager也采用类似的主备机制,通过ZooKeeper选举和状态存储实现高可用,任务失败时由ApplicationMaster重新调度。
- 【回答框架 5】此外,HDFS的Snapshots、Trash和回收站功能提供数据误删恢复能力,配合定期备份和校验和检查,进一步保障数据可靠性和可用性。
- 【关键点 1】HDFS通过多副本(默认3)和机架感知实现数据冗余。
- 【关键点 2】NameNode基于Active/Standby和共享日志实现高可用,ZKFC自动故障转移。
- 【关键点 3】DataNode心跳失效触发副本自动复制。
- 【关键点 4】YARN ResourceManager也支持主备高可用。
- 【关键点 5】快照和回收站提供数据恢复能力。
- 【易错点 1】不能认为副本数越多越好,需平衡存储成本和故障恢复时间。
- 【易错点 2】NameNode切换时可能存在短暂不可用窗口,并非绝对无缝。
- 【易错点 3】副本复制依赖于集群资源,网络或磁盘故障时恢复可能延迟。