一、HA
- HA(高可用)消除了NameNode的单点故障问题,使得整个系统的可用度变高,这是在分布式系统中常用的操作
- Hadoop做到高可用的方法是:去掉SecondaryNameNode,添加一个NameNode,所以HA解决方案中要有2个甚至更多的NameNode.
- 这些Name不能同时起作用,起作用的叫Active,其余的叫Standby,客户端的文件只能向Active NameNode发送.
二、Standby NameNode
- Standby NameNode有Secondary的作用,但是它有更多的功能
- 当Active NameNode出问题不能对客户端提供服务时,Standby NameNode会变成Active NameNode,当原Active复活时只能继续做Standby NameNode.
- Standby NameNode的日常工作也是定时合并fsimage与edits,然后把合并后的新的fsimage传给Active NameNode
- 与使用Secondary NameNode的方案不同,Standby NameNode也要与DataNode通信,DataNode需要把一些重要数据(比如文件副本变化情况、心跳)发给所有的NameNode,这样才能做到当Active NameNode死掉时Standby NameNode快速代替
- Standby NameNode中的元数据不如Active NameNode新,要滞后一点
- Standby NameNode与Active NameNode共享edits日志文件,当Active NameNode向edits文件中写入新的操作日志时,Standby NameNode马上从中读出来,再合并到fsimage中.
- 只有Active NameNode才可以写edits,Standby NameNode只能读edits