用于高可用性的Hadoop 2.0名称节点,辅助节点和检查点节点

时间:2015-08-17 13:12:33

标签: hadoop hdfs hadoop2 high-availability

在阅读Apache Hadoop documentation之后,在了解辅助节点和职责的责任方面存在一些小小的困惑。检查点节点

我很清楚 Namenode 角色和职责:

  
      
  • NameNode将对文件系统的修改存储为附加到本机文件系统文件的日志,进行编辑。当NameNode启动时,它从图像文件fsimage读取HDFS状态,然后从编辑日志文件中应用编辑。然后它将新的HDFS状态写入fsimage并使用空的编辑文件开始正常操作。由于NameNode仅在启动期间合并fsimage和编辑文件,因此编辑日志文件在繁忙的群集上可能会随着时间的推移而变得非常大。较大的编辑文件的另一个副作用是下次重新启动NameNode需要更长的时间。
  •   

但是我在理解次要名字节点时遇到了一点困惑。检查点名称节点职责。

Secondary NameNode

  
      
  • 辅助NameNode定期合并fsimage和编辑日志文件,并使编辑日志大小保持在限制范围内。它通常在与主NameNode不同的机器上运行,因为它的内存要求与主NameNode的顺序相同。
  •   

检查点节点:

  
      
  • Checkpoint节点定期创建命名空间的检查点。它从活动的NameNode下载fsimage和编辑,在本地合并它们,并将新映像上传回活动的NameNode。 Checkpoint节点通常在与NameNode不同的机器上运行,因为它的内存要求与NameNode的顺序相同。 Checkpoint节点由配置文件中指定的节点上的bin / hdfs namenode -checkpoint启动。
  •   

似乎是辅助名称节点之间的责任。检查点节点不清楚。两者都在进行编辑。那么谁最终会修改?

另一方面,我在jira中创建了两个错误,以消除理解这些概念的模糊性。

issues.apache.org/jira/browse/HDFS-8913 
issues.apache.org/jira/browse/HDFS-8914 

2 个答案:

答案 0 :(得分:13)

<强>的NameNode(主)

NameNode存储HDFS的元数据。 HDFS的状态存储在名为fsimage的文件中,是元数据的基础。在运行时期间,修改只会写入名为edits的日志文件。在NameNode的下一次启动时,将从fsimage读取状态,编辑的更改将应用​​于该状态,新状态将写回fsimage。清除此编辑后,现在已准备好包含新的日志条目。

检查点节点

引入了一个Checkpoint Node来解决NameNode的缺点。更改只是写入编辑,而不是在运行时合并到fsimage。如果NameNode运行一段时间,则编辑变得很大,下一次启动将花费更长时间,因为必须对状态应用更多更改以确定元数据的最后状态。

Checkpoint节点定期从NameNode获取fsimage和编辑并合并它们。结果状态称为检查点。之后将结果上传到NameNode。

还有一种类似的节点称为“辅助节点”,但它没有“上传到NameNode”功能。因此NameNode需要从Secondary NameNode获取状态。它也很令人困惑,因为名称表明,如果NameNode失败,则Secondary NameNode接收请求,而不是这种情况。

备份节点

备份节点提供与检查点节点相同的功能,但与NameNode同步。它不需要定期获取更改,因为它接收到一系列文件系统编辑。来自NameNode。它将当前状态保存在内存中,只需将其保存到图像文件中即可创建新的检查点。

答案 1 :(得分:0)

NameNode -也称为主节点。 Namenode存储元数据,即块数,它们的位置,副本和其他详细信息。该元数据可在主机的内存中使用,以更快地检索数据。 NameNode维护和管理从属节点,并为其分配任务。由于它是HDFS的核心,因此应部署在可靠的硬件上。 Namenode使用以下两个文件保存其名称空间:

FsImage:FsImage是一个“图像文件”。它包含整个文件系统名称空间,并作为文件存储在namenode的本地文件系统中。

EditLogs:它包含有关文件系统有关最新FsImage的所有最新修改。

检查点节点-:检查点节点是一个定期创建名称空间检查点的节点。 Hadoop中的Checkpoint节点首先下载fsimage并从活动的Namenode进行编辑。然后它将它们本地合并(FsImage和编辑),最后将新图像上传回活动的NameNode。检查点节点将最新的检查点存储在目录中。它的结构与Namenode的目录相同。它允许检查点图像可供namenode读取。

备份节点-备份节点提供与Checkpoint节点相同的检查点功能。在Hadoop中,“备份”节点保留文件系统名称空间的内存中最新副本,该副本始终与活动NameNode状态保持同步。备份节点不需要从活动的NameNode下载fsimage并编辑文件即可创建检查点,就像Checkpoint节点或Secondary Namenode所需要的那样,因为它已经具有名称空间状态的最新状态。在记忆中。备份节点检查点过程效率更高,因为它仅需要将名称空间保存到本地fsimage文件中并重置编辑。 NameNode一次支持一个Backup节点。如果正在使用备份节点,则不能注册任何检查点节点。