HDFS HA
– 为了保证 standby 节点与 active 节点之间数据的同步,两个节点会与另一组
服务集群 “journalNodes” (JNs) 进行通信
• 当 active 节点对命名空间做任何改动时,操作日志会被记录到超过半数的 JournalNode 上
• standby 节点会去 JournalNode 上读取这些日志
– 集群当中 只能有一个 activeNameNode ,这对集群的正常运行时至关重要
– 为了保证 standby 节点与 active 节点之间数据的同步,两个节点会与另一组
服务集群 “journalNodes” (JNs) 进行通信
• 当 active 节点对命名空间做任何改动时,操作日志会被记录到超过半数的 JournalNode 上
• standby 节点会去 JournalNode 上读取这些日志
– 集群当中 只能有一个 activeNameNode ,这对集群的正常运行时至关重要
的
•
利用
2N+1
台
JournalNode
存储
EditLog
• 最多容忍 N 台服务器挂掉
• 基于 Paxos 算法
EditLog
• 最多容忍 N 台服务器挂掉
• 基于 Paxos 算法
–
如果要实现主备切换的自动化,还需要额外添加两个服务
–额外一个ZooKeeper 集群
• 实现 NameNode 故障检测
• active NameNode 的选举
–每个NameNode上运行ZKFailoverController (ZKFC) 服务
• NameNode 健康状态的检查
• ZooKeeper 会话的管理
• ZooKeeper-based 选举
–额外一个ZooKeeper 集群
• 实现 NameNode 故障检测
• active NameNode 的选举
–每个NameNode上运行ZKFailoverController (ZKFC) 服务
• NameNode 健康状态的检查
• ZooKeeper 会话的管理
• ZooKeeper-based 选举