HDFS-3077提出了基于QJM的Hadoop-HA架构。
看了下设计文档,收获很多,对QJM架构有了更全面的了解。
QJM依赖QuorumJournalManager和JournalNode组件。
QuorumJournalManager:运行在每个namenode里,实现了HDFS已有的可插拔的JournalManager接口。此类的主要职责是:使用RPC与JournalNodes通信、发送edit logs、进行fencing操作、日志segment同步(synchronization)等工作。
JournalNode:运行于N台机器上,每个进程都会暴露一个Hadoop IPC接口,这个接口用来让QuorumJournalManager来远程的写edit log到Journal Node的本地磁盘。使用FileJournalManager来管理本地存储。
当qjm想要开始写edit logs时,他会去做如下操作: