1.前言
1.1背景
自从hadoop2版本开始,社区引入了NameNode高可用方案。NameNode主从节点间需要同步操作日志来达到主从节点元数据一致。最初业界均通过NFS来实现日志同步,大家之所以选择NFS,一方面因为可以很方便地实现数据共享,另外一方面因为NFS已经发展20多年,已经相对稳定成熟。
虽然如此,NFS也有缺点不能满足HDFS的在线存储业务:网络单点及其存储节点单点。业界提供了数据共享的一些高可用解决方案,但均不能很好地满足目前HDFS的应用场景。
方案 |
网络单点 |
存储单点 |
备注 |
Mysql HA |
无 |
无 |
数据有丢失风险 |
Drbd+heartbeat+NFS |
无 |
无 |
|
Keepalive+NFS |
无 |
有 |
数据有丢失风险 |
为了满足共享日志的高可用性,社区引入QJM。QJM由cloudera开发,实现了读写高可用性,使HDFS达到真正的高可用性成为可能。
1.2.术语和定义
术语和定义 |
解释 |
Epoch |