NameNode将对文件系统的改动追加保存到本地文件系统上的一个日志文件(edits)。当一个NameNode启动时,它首先从一个映像文件(fsimage)中读取HDFS的状态,接着应用日志文件中的edits操作。然后它将新的HDFS状态写入(fsimage)中,并使用一个空的 edits文件开始正常操作。因为NameNode只有在启动阶段才合并fsimage和edits,所以一段时间后日志文件可能会变得非常庞大,特别是对大型的集群。日志文件太大的另一个副作用是下一次NameNode启动会花很长时间。
Secondary NameNode定期合并fsimage和edits日志,将edits日志文件大小控制在一个限度下。因为内存需求和NameNode在一个数量级上,所以通常secondary NameNode(运行在单独的物理机器上)和NameNode运行在不同的机器上。Secondary NameNode通过bin/start-dfs.sh在conf/masters中指定的节点上启动。
Secondary NameNode的检查点进程启动,是由两个配置参数控制的:
* fs.checkpoint.period,指定连续两次检查点的最大时间间隔, 默认值是1小时。
* fs.checkpoint.size定义了edits日志文件的最大值,一旦超过这个值会导致强制执行检查点(即使没到检查点的最大时间间隔)。默认值是64MB。
Secondary NameNode保存最新检查点的目录与NameNode的目录结构相同。 所以NameNode可以在需要的时候读取Secondary NameNode上的检查点镜像。
如果NameNode上除了最新的检查点以外,所有的其他的历史镜像和edits文件都丢失了, NameNode可以引入这个最新的检查点。以下操作可以实现这个功能:
* 在配置参数dfs.name.dir指定的位置建立一个空文件夹;
* 把检查点目录的位置赋值给配置参数fs.checkpoint.dir;
* 启动NameNode,并加上-importCheckpoint。
NameNode会从fs.checkpoint.dir目录读取检查点, 并把它保存在dfs.name.dir目录下。如果dfs.name.dir目录下有合法的镜像文件,NameNode会启动失败。 NameNode会检查fs.checkpoint.dir目录下镜像文件的一致性,但是不会去改动它。
- 浏览: 503651 次
- 来自: ...
最新评论
-
java_doom:
peaceliu 写道 受教了客气了 多谢指教和启发
HAhadoop集群namenode无法自动切换成active -
peaceliu:
受教了
HAhadoop集群namenode无法自动切换成active -
java_doom:
补充一下 在编译hadoop2.9.4时不要改maven源不要 ...
编译hadoop2.7 -
java_doom:
naomibyron 写道我专门注册了一个ITEYE账号,就为 ...
No protocol specified (gedit:2699): Gtk-WARNING **: cannot open display: :0. -
naomibyron:
我专门注册了一个ITEYE账号,就为了对你说声谢谢,对我帮助很 ...
No protocol specified (gedit:2699): Gtk-WARNING **: cannot open display: :0.
相关推荐
NameNode及SecondaryNameNode分析
SecondaryNameNode则辅助NameNode,帮助维护元数据的一致性。下面我们将详细探讨NameNode和SecondaryNameNode的工作机制,以及Fsimage和Edits文件的作用。 1. NameNode工作流程: - **首次启动**:NameNode会格式...
第5章 NameNode和SecondaryNameNode(面试开发重点) 5.1 NN和2NN工作机制 思考:NameNode中的元数据是存储在哪里的? 首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应...
secondarynamenode并非namenode的热备份,它不会直接处理客户端的请求,其主要功能是定期合并namenode的编辑日志(edits)和命名空间镜像(FSImage),以防止编辑日志过大,减轻namenode的工作压力,并提供一种恢复...
SecondaryNamenode,NameNode的镜像备份节点 ==Map Reduce== JobTracker,hadoop的Map/Reduce调度器,负责与TackTracker通信分配计算任务并跟踪任务进度。 TaskTracker,启动和管理Map和Reduce子任务的节点。
需要注意的是,虽然名为"Secondary",但SecondaryNameNode并不是NameNode的热备份,它不参与HDFS的日常操作,仅在特定时刻协助NameNode执行合并和备份任务。在Hadoop的新版本中,这一角色已经被更先进的HaNameNode...
SecondaryNameNode 节点的配置需要在 NameNode 机器上启动 SecondaryNameNode 进程,并在 masters 文件中指定 SecondaryNameNode 节点的机器。 3. NameNode 节点的备份 NameNode 节点的备份是非常重要的,因为 ...
1. **首次启动与格式化:** 当NameNode首次启动或格式化时,会创建两个关键文件——Fsimage和Edits。Fsimage是HDFS文件系统元数据的一个静态快照,包含所有目录和文件的IDNode信息。Edits文件则记录了所有后续的修改...
3. SecondaryNameNode(2nn):是 NameNode 的助手,负责备份 NameNode 的元数据,确保数据的可靠性和可用性。 二、HDFS 读数据流程 HDFS 读数据流程包括以下步骤: 1. 客户端通过 FileSystem 向 NameNode 询问...
3、NameNode和SecondaryNameNode:SecondaryNameNode通常与NameNode在同一个节点上启动,SecondaryNameNode的目的是帮助NameNode合并编辑日志,减少NameNode的负载。 4、HDFS的Block Size:HDFS的默认Block Size是...
本资源摘要信息涵盖了大数据技术原理与应用的多个方面,涉及到大数据技术的“数据存储和管理”、“数据处理和分析”、“数据隐私保护”等方面,涵盖了Hadoop框架、Hadoop组件、分布式文件系统、NameNode和...
SecondaryNameNode 应与 NameNode 部署到不同的节点。 HBase 和 MapReduce 关系 MapReduce 是 HBase 可以正常运行的保证,两者不可或缺。MapReduce 可以直接访问 HBase,它们之间有强关联关系。
- **SecondaryNameNode的CheckPoint机制:** SecondaryNameNode定期与NameNode交互,询问是否需要进行checkpoint操作。如果NameNode同意,则SecondaryNameNode会请求执行CheckPoint,NameNode会切割现有的Edits文件并...
在本例中,集群由1台NameNode(兼SecondaryNameNode,master)、2台DataNode(slave1、slave2)组成。 首先,我们需要在所有节点上安装相同版本的Hadoop,并将其解压到Linux系统指定的目录。使用Xshell等远程连接...
【大数据技术原理与操作应用】第6章习题答案涉及Hadoop分布式文件系统(HDFS)、Hadoop2.x架构、高可用性(HA)配置、NameNode与SecondaryNameNode的角色、资源管理、集群性能瓶颈等多个知识点。 1. Hadoop2.0集群服务...
启动Hadoop集群:启动Hadoop集群的各个节点,包括NameNode、SecondaryNameNode、DataNode等。 用途: 数据存储和处理:Hadoop可以存储海量数据,并使用MapReduce等编程模型进行数据处理和分析。 数据挖掘和机器学习...
大家都知道HDFS的架构由NameNode,SecondaryNameNode和DataNodes组成,其源码类图如下图所示:正如上图所示,NameNode和DataNode继承了很多的protocol用于彼此间的通信,其实nameNode还实现了...实现了ClientProtocol...
在 namenode 崩溃的情况下,需要模拟 namenode 的崩溃,删除 namenode 的文件夹, 然后从 secondarynamenode 远程拷贝 namesecondary 文件到 namenode 的 namesecondary 目录下。 模拟 namenode 的崩溃可以使用 ...
Heartbeats是DataNode与NameNode之间保持联系的方式。DataNode每隔3秒发送一次心跳,告诉NameNode其当前的状态,包括可用的存储空间、正在执行的任务等。NameNode通过心跳来监控DataNode的健康状态,并据此调整数据...
其次,SecondaryNameNode的工作机制是每隔一个小时,去NameNode中拉取最新的fsimage文件(里面存放元数据信息)和已经终止的edits文件(里面存放NameNode的操作记录)拉到SecondaryNameNode的服务器上,然后进行合并...