Hadoop具有一致性和分区容忍性,即它属于CAP理论的CP类别。
Hadoop不可用,因为所有节点都依赖于name节点。如果name节点失败,集群就会停止运行。
但是考虑到HDFS集群有一个辅助名称节点的事实,为什么我们不能将hadoop称为可用。如果名称节点关闭,则可以使用辅助名称节点进行写入。
名称节点和辅助名称节点之间导致hadoop不可用的主要区别是什么。
提前谢谢。
发布于 2013-11-14 18:17:24
namenode将HDFS文件系统信息存储在名为fsimage的文件中。对文件系统的更新(添加/删除数据块)不会更新fsimage文件,而是记录到文件中,因此I/O是快速的仅追加流,而不是随机文件写入。在重新启动时,namenode读取fsimage,然后应用日志文件中的所有更改,以使内存中的文件系统状态保持最新。这个过程需要时间。
第二个名称节点作业不是名称节点的辅助节点,而只是定期读取文件系统更改日志,并将其应用到fsimage文件中,从而使其保持最新。这使得namenode下次可以更快地启动。
不幸的是,第二个namenode服务不是备用的第二个namenode,尽管它的名字。具体地说,它没有为namenode提供HA。这是很好的插图here。
参见Understanding NameNode Startup Operations in HDFS。
请注意,较新的发行版(当前的Hadoop2.6)引入了namenode High Availability using NFS (shared storage)和/或namenode High Availability using Quorum Journal Manager。
发布于 2015-04-04 14:50:58
Name Node是一个主节点,其中的所有元数据都定期存储到fsimage和editlog文件中。但是,当名称节点关闭时,辅助节点将处于在线状态,但此节点仅具有对fsimage和editlog文件的读访问权限,而不具有对它们的写访问权限。所有的辅节点操作都会存储到temp文件夹中。当名称节点恢复在线时,此临时文件夹将被复制到名称节点,并且名称节点将更新fsimage和editlog文件。
发布于 2015-03-09 02:40:56
即使在HDFS High Availability中,有两个NameNodes而不是一个NameNode和一个SecondaryNameNode,也不存在严格的CAP意义上的可用性。它只适用于NameNode组件,即使在那里,如果网络分区将客户端与两个NameNodes分开,那么集群实际上也是不可用的。
https://stackoverflow.com/questions/19970461
复制相似问题