一.HA的作用
HA(High Available, 高可用)消除了NameNode的单点故障问题,使得整个系统的可用度变高,这是在各种分布式系统中常见的一个名词
二.Hadoop做到高可用的方法
- 去掉SecondaryNameNode,添加一个NameNode。
- HA的解决方案中要有2个(Hadoop3中可以更多)NameNode
- 这些NameNode不能同时起作用,起作用的叫做Active,其余的叫Standby,客户端的文件操作请求只能向Active NameNode发送
三.Standby的作用
- Standby NameNode有SecondaryNameNode的作用,但是它要做更多的事,当Active NameNode出问题不能再对客户端提供服务时,Standby NameNode会挺身而出变成Active NameNode,当Active NameNode复活时只能屈身做Standby NameNode
- Standby NameNode的日常工作也是定时合并fsimage与edits,然后把合并后的新fsimage传给Active NameNode。与使用SecondaryNameNode的方案不同,Standby NameNode也要与DataNode通信,DataNode需要把一些重要数据(比如自己的文件副本变化情况、自己的心跳)发给所有的NameNode,这样才能做到在Active 死掉时用Standby NameNode快速代替
四.Standby的更新
与Active共享edits日志文件,当Activity NameNode 向edits文件中写入新的操作日志时,Standby NameNode马上从中读出来,再合并到fsimage中。所以,只有Activate NameNode才可以写edits,Standby NameNode只能读edits
五.edits共享方式
- NFS文件共享
- QJM日志共享系统
版权声明:本文为feizuiku0116原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。