HA概念:
high avalability 高可用性。
hadoop 1.x非ha设计
Secondnode对元数据的可靠性有了保障,但服务的可用性不高。
即:当Namenode节点宕机了,整个hadoop就不能使用了,影响了client的使用。
hadoop 2.x的ha设计
新增了一个NameNode节点,拥有了2个NameNode节点,但一个状态是 active,一个状态是 standby(备用)。
standby的数据和active的一样。
当 active节点宕机的时候,standby节点必须无缝切换为 active状态。
两个节点的edits必须完全一样。但是两个NameNode部署在不同机器上,节点的 edits内容是通过网络同步的,在active宕机的时候,standby的edits不一定是最新的。如何保证实时性,达到无缝切换?
方法:将NameNode节点的edits内容放到分布式的集群里。NameNode去读写这个集群。
hadoop为此开发了一个专门管理 edits的分布式框架:qjournal,一个依赖于 zookeeper的框架。