–HDFS存在的问题
•NameNode单点故障,难以应用于在线场景
•NameNode压力过大,且内存受限,影响系统扩展性
–解决单点故障
•HDFS HA:通过主备NameNode解决
•如果主NameNode发生故障,则切换到备NameNode上
ZK:zookeeper 一定要是奇数台 --当NNActive挂了之后选举启用哪台NN Standby
ZKFC:zookeeper FailoverController --FC Standby可作SecondaryNameNode工作
JN: Journal Node 一定要是奇数台 --共享edits
HA工作机制:
–主备NameNode
–解决单点故障
•主NameNode对外提供服务,备NameNode同步主NameNode元数据,以待切换
•所有DataNode同时向两个NameNode汇报数据块信息
–两种切换选择
•手动切换:通过命令实现主备之间的切换,可以用HDFS升级等场合
•自动切换:基于Zookeeper实现
–基于Zookeeper自动切换方案
•Zookeeper Failover Controller:监控NameNode健康状态,
•并向Zookeeper注册NameNode
•NameNode挂掉后,ZKFC为NameNode竞争锁,获得ZKFC 锁
•的NameNode变为active