Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 名称节点与辅助名称节点_Hadoop_Hdfs_Hadoop2_High Availability - Fatal编程技术网

Hadoop 名称节点与辅助名称节点

Hadoop 名称节点与辅助名称节点,hadoop,hdfs,hadoop2,high-availability,Hadoop,Hdfs,Hadoop2,High Availability,Hadoop具有一致性和分区容错性,即它属于CAP theoram的CP类别 Hadoop不可用,因为所有节点都依赖于名称节点。如果名称节点下降,集群将下降 但是考虑到HDFS集群有一个辅助名称节点,为什么我们不能称hadoop为可用节点呢。如果名称节点已关闭,则可以使用辅助名称节点进行写入 名称节点和辅助名称节点之间的主要区别是什么,使得hadoop不可用 提前谢谢 namenode将HDFS文件系统信息存储在名为fsimage的文件中。对文件系统的更新(添加/删除块)不会更新fsimage文

Hadoop具有一致性和分区容错性,即它属于CAP theoram的CP类别

Hadoop不可用,因为所有节点都依赖于名称节点。如果名称节点下降,集群将下降

但是考虑到HDFS集群有一个辅助名称节点,为什么我们不能称hadoop为可用节点呢。如果名称节点已关闭,则可以使用辅助名称节点进行写入

名称节点和辅助名称节点之间的主要区别是什么,使得hadoop不可用


提前谢谢

namenode将HDFS文件系统信息存储在名为fsimage的文件中。对文件系统的更新(添加/删除块)不会更新fsimage文件,而是记录到文件中,因此I/O是仅快速附加流,而不是随机文件写入。重新启动时,namenode读取fsimage,然后应用日志文件中的所有更改,使内存中的文件系统状态保持最新。这个过程需要时间

secondarynamenode作业不是name节点的辅助作业,而是定期读取文件系统更改日志并将其应用到fsimage文件中,从而使其更新。这允许namenode下次更快地启动

不幸的是,secondarynamenode服务不是备用的secondarynamenode,尽管它的名称不同。具体来说,它不为namenode提供HA。这是很好的说明


请注意,最近的发行版(当前的Hadoop 2.6)引入了和/或。

即使在HDFS高可用性中,如果有两个NameNode而不是一个NameNode和一个SecondaryNameNode,严格意义上也没有可用性。它只适用于NameNode组件,即使在那里,如果网络分区将客户端与两个NameNode分开,那么集群实际上也不可用。

Name Node是一个主节点,其中的所有元数据定期存储到fsimage和editlog文件中。但是,当名称节点关闭时,辅助节点将联机,但此节点仅对fsimage和editlog文件具有读取权限,而不具有写入权限。所有辅助节点操作都将存储到临时文件夹中。当name node返回联机时,此临时文件夹将复制到name node,并且namenode将更新fsimage和editlog文件。

如果我用简单的方式解释,请假设name node为men(工作/活动),secondary name node为ATM机(存储/数据存储)

因此,所有功能仅由NN或men执行,但如果出现故障,则SNN将毫无用处。它不起作用,但稍后可用于恢复您的数据或日志。

多年来,情况发生了变化,尤其是使用Hadoop 2.x。现在,Namenode具有故障转移功能,具有很高的可用性

辅助名称节点现在是可选的&备用名称节点已用于故障切换过程

备用名称节点将与活动名称节点所做的所有文件系统更改保持最新

HDFS有两个选项:NFS和Quorum日志管理器,但Quorum日志管理器是首选选项

看看Apache

来自幻灯片8,来自:

当活动节点执行任何名称空间修改时,它会将修改记录持久地记录到这些JN中的大多数。备用节点从JNs中读取这些编辑并应用到自己的名称空间

在发生故障转移的情况下,备用设备将确保在将自身升级到活动状态之前已从JournalNodes读取所有编辑。这可确保在发生故障转移之前,命名空间状态完全同步

查看相关SE问题中的故障转移过程:

关于您对Hadoop的CAP理论的疑问:

  • 它可以是强一致的
  • HDFS几乎是高度可用的,除非你遇到了一些坏运气 (如果一个块的所有三个副本都已关闭,则无法获取数据)
  • 支持数据分区

  • 当NameNode启动时,它加载FSImage并重播编辑日志以创建最新更新的名称空间。若编辑日志文件的大小较大,则此过程可能需要较长时间,从而增加启动时间。
    次要名称节点的工作是定期检查编辑日志和重播,以创建更新的FSImage并存储在持久存储中。当名称节点启动时,不需要重播编辑日志来创建更新的FSImage,它使用由辅助名称节点创建的FSImage。

    名称节点是一个主节点,它包含FSImage方面的元数据,还包含编辑日志。编辑日志在namenode的命名空间中包含最近添加/删除的块信息。fsimage文件在永久存储器中包含整个hadoop系统的元数据。每次我们需要在fsimage中进行永久性更改时,我们都需要重新启动namenode,以便可以在namenode中写入编辑日志信息,但这样做需要很多时间

    辅助名称节点用于更新fsimage。辅助名称节点将访问编辑日志并永久更改fsimage,以便下次名称节点可以更快地启动


    基本上,次要名称节点是namenode的助手,为namenode执行内务管理功能。

    您好,感谢精彩的视频,我还有最后一个疑问->次要名称节点通过将编辑日志数据合并到fsimage中来创建定期检查点。前几天,我阅读了一些HDFS中运行在不同机器上的ckechpoint节点,在阅读之后,我了解到次要名称节点和检查点节点的功能非常相似,那么是什么使CheckPound节点不同于次要名称节点。它们是一样的吗?支票