有趣的问题。我在 AvatarNodes 上找到了这篇文章:http: //hadoopblog.blogspot.com/2010/02/hadoop-namenode-high-availability.html
在我看来,AvatarNode 允许您在名称节点出现故障时最大限度地减少停机时间,并在不到一分钟的时间内用新的名称节点备份。
从hadoop文档:
The term "secondary name-node" is somewhat misleading. It is not a name-node in the
sense that data-nodes cannot connect to the secondary name-node, and in no event it can
replace the primary name-node in case of its failure.
由于辅助名称节点不能充当名称节点,因此在恢复或启动新名称节点时可能会出现较长的停机时间。
AvatarNode 既可以充当辅助节点,也可以充当主要节点,并允许快速故障转移,只需切换 VIP。
关于为什么使用 NFS 而不是套接字,帖子说
It is guaranteed that the Standby AvatarNode ingests all committed transactions because
it reopens the edits log and consumes all transactions till the end of the file; this
guarantee depends on the fact that NFS-v3 supports close-to-open cache coherency
semantics.
我认为这是在名称节点出现故障时最大限度地减少数据丢失并保持与 HDFS 编辑数据的一致性的问题。更多关于接近开放一致性保证的信息:http: //nfs.sourceforge.net/#faq_a8