Hdfs HA 是指在一个集群中存放两个namenode,分别运行在独立的物理节点上。
一个Namenode状态为主,分别对外提供服务:另一个Namenode 为备选,负责与主
NameNode同步状态信息,随时准备调换。
为了保证主备namenode状态信息保持一致。除了Datanode需要向两个namenode
发送心跳信息外,还需要构建一组独立的守护进程 “journalNode” ,用来存储 edits 文件。
当主namenode的edits文件发生变化后,主namenode 需要把edits文件写到一半以上jouranlNode
上。而备选namenode复制观察journalNode的变化,一旦Journalnode上的edits 文件发生变化了,
马上从Journalnode上读取最新的edits文件,并更新其内部命名空间数据。一旦主namenode遇到
错误,备namenode需要保证从Journalnode中读出全部的edits文件,然后切换成Active状态