【发布时间】:2019-01-27 13:18:15
【问题描述】:
看完ApacheHadoop documentation后,对Secondary node & check point node的职责理解有点疑惑
我很清楚Namenode的角色和职责:
- NameNode 将文件系统的修改存储为附加到本机文件系统文件的日志,编辑。当 NameNode 启动时,它会从图像文件 fsimage 中读取 HDFS 状态,然后应用编辑日志文件中的编辑。然后它将新的 HDFS 状态写入 fsimage 并使用空的编辑文件开始正常操作。由于 NameNode 仅在启动期间合并 fsimage 和编辑文件,因此在繁忙的集群上,编辑日志文件可能会随着时间的推移变得非常大。较大的编辑文件的另一个副作用是下次重新启动 NameNode 需要更长的时间。
但我在理解辅助名称节点和检查点名称节点职责方面有一点困惑。
辅助NameNode:
- 辅助 NameNode 定期合并 fsimage 和编辑日志文件,并将编辑日志大小保持在限制范围内。它通常在与主 NameNode 不同的机器上运行,因为它的内存需求与主 NameNode 的顺序相同。
检查点节点:
- 检查点节点定期创建命名空间的检查点。它从活动 NameNode 下载 fsimage 和编辑,在本地合并它们,然后将新图像上传回活动 NameNode。 Checkpoint 节点通常运行在与 NameNode 不同的机器上,因为它的内存需求与 NameNode 的顺序相同。 Checkpoint 节点由配置文件中指定的节点上的 bin/hdfs namenode -checkpoint 启动。
Secondary namenode 和 Checkpoint 节点之间的职责似乎并不清楚。两者都在进行编辑。那么最终谁来修改呢?
另一方面,我在 jira 中创建了两个错误,以消除理解这些概念时的歧义。
issues.apache.org/jira/browse/HDFS-8913
issues.apache.org/jira/browse/HDFS-8914
【问题讨论】:
标签: hadoop hdfs hadoop2 high-availability