1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| 1> 确保只有一个NameNode提供服务
Active NameNode与Standby NameNode,同一时刻只应有一个活跃状态、提供服务的
NameNode。要保障统一时刻只有一个Active
2> Standby NameNode与Active NameNode元数据同步机制
Standy NameNode应能够实时访问Active NameNode的edits日志,所以可靠日志的共享机制非常重要
3> 故障检测
如果Active NN失效、宕机或者其依赖的OS、硬件出现故障,如何进行检测?这里就需要FailoverController组件
4> 自动故障转移
故障检测的目的就是期望能够快速的自动切换,使得故障不影响NameNode不影响NameNode的对外服务。而自动检测这里依赖于FailoverController组件
与Zookeeper集群的交互
5> Standby NameNode与Active NameNode之间BLOCK块同步
NamNode启动时将所有HDFS元数据信息从fsimage和edits中导入内存,元数据更新操作写入edits。
但是数据块BLOCK信息不存储到文件,是NameNode启动后与DataNode实时交互获取的。
如果发生故障切换,而新上任的NameNode没有实时的BLOCK信息,依然无法完成服务。
所有要求的DataNode的BLOCK信息要同时汇报给所有的NameNode
|