`

hadoop SecondaryNameNode和NameNode

 
阅读更多

1.概述

光从字面上来理解,很容易让一些初学者先入为主的认为:SecondaryNameNode(snn)就是NameNode(nn)的热备进程。
其实不是。snn是HDFS架构中的一个组成部分,但是经常由于名字而被人误解它真正的用途,其实它真正的用途,是用来保存namenode中对HDFS metadata的信息的备份,并减少namenode重启的时间。对于hadoop进程中 ,要配置好并正确的使用 snn,还是需要做一些工作的。

hadoop的默认配置中让snn进程默认运行在了namenode的那台机器上,但是这样的话,如果这台机器出错,宕机,对恢复HDFS文件系统是很大的灾难,更好的方式是:将snn的进程配置在另外一台机器 上运行。

在hadoop中,namenode负责对HDFS的metadata的持久化存储,并且处理来自客户端的对HDFS的各种操作的交互反馈。为了保 证交互速度,HDFS文件系统的metadata是被load到namenode机器的内存中的,并且会将内存中的这些数据保存到磁盘进行持久化存储。

为了保证这个持久化过程不会成为HDFS操作的瓶颈,hadoop采取的方式是:没有对任何一次的当前文件系统的snapshot进行持久化,对HDFS最近一段时间的操作list会被保存到namenode中的一个叫Editlog的文件中去。当重启namenode时,除了load fsImage意外,还会对这个EditLog文件中 记录的HDFS操作进行replay,以恢复HDFS重启之前的最终状态。

而SecondaryNameNode,会周期性的将EditLog中记录的对HDFS的操作合并到一个checkpoint中,然后清空 EditLog。所以namenode的重启就会Load最新的一个checkpoint,并replay EditLog中 记录的hdfs操作,由于EditLog中记录的是从上一次checkpoint以后到现在的操作列表,所以就会比较小。如果没有snn的这个周期性的合并过程,那么当每次重启namenode的时候,就会 花费很长的时间。而这样周期性的合并就能减少重启的时间。同时也能保证HDFS系统的完整性。
这就是SecondaryNameNode所做的事情。所以snn并不能分担namenode上对HDFS交互性操作的压力。尽管如此,当 namenode机器宕机或者namenode进程出问题时,namenode的daemon进程可以通过人工的方式从snn上拷贝一份metadata 来恢复HDFS文件系统。
至于为什么要将SNN进程运行在一台非NameNode的 机器上,这主要出于两点考虑:

可扩展性: 创建一个新的HDFS的snapshot需要将namenode中load到内存的metadata信息全部拷贝一遍,这样的操作需要的内存就需要 和namenode占用的内存一样,由于分配给namenode进程的内存其实是对HDFS文件系统的限制,如果分布式文件系统非常的大,那么 namenode那台机器的内存就可能会被namenode进程全部占据。
容错性: 当snn创建一个checkpoint的时候,它会将checkpoint拷贝成metadata的几个拷贝。将这个操作运行到另外一台机器,还可以提供分布式文件系统的容错性。
配置将SecondaryNameNode运行在另外一台机器上

HDFS的一次运行实例是通过在namenode机器上的$HADOOP_HOME/bin/start-dfs.sh( 或者start-all.sh ) 脚本来启动的。这个脚本会在运行该脚本的机器上启动 namenode进程,而slaves机器上都会启动DataNode进程,slave机器的列表保存在 conf/slaves文件中,一行一台机器。并且会在另外一台机器上启动一个snn进程,这台机器由 conf/masters文件指定。

所以,这里需要严格注意,conf/masters 文件中指定的机器,并不是说jobtracker或者namenode进程要 运行在这台机器上,因为这些进程是运行在 launch bin/start-dfs.sh或者 bin/start-mapred.sh(start-all.sh)的机器上的。所以,masters这个文件名是非常的令人混淆的,应该叫做 secondaries会比较合适。

2.配置

然后,通过以下步骤:
将所有想要运行secondarynamenode进程的机器写到masters文件中,一行一台。
修改在masters文件中配置了的机器上的conf/hadoop-site.xml文件,加上如下选项:

<property> 
<name>dfs.http.address</name> 
<value>namenode.hadoop-host.com:50070</value> 
</property>


core-site.xml:这里有2个参数可配置,但一般来说我们不做修改。fs.checkpoint.period表示多长时间记录一次hdfs的镜像。默认是1小时。fs.checkpoint.size表示一次记录多大的size,默认64M。

复制代码
<property> 
<name>fs.checkpoint.period</name> 
<value>3600</value> 
<description>The number of seconds between two periodic checkpoints. 
</description> 
</property> 

<property> 
<name>fs.checkpoint.size</name> 
<value>67108864</value> 
<description>The size of the current edit log (in bytes) that triggers 
a periodic checkpoint even if the fs.checkpoint.period hasn't expired. 
</description> 
</property>
复制代码

3. 配置检查

配置完成之后,我们需要检查一下是否成功。我们可以通过查看运行secondarynamenode的机器上文件目录来确定是否成功 配置。首先输入jps查看是否存在secondarynamenode进程。如果存在,在查看对应的目录下是否有备份记录。

该目录一般存在于hadoop.tmp.dir/dfs/namesecondary/下面。

4.总结

1、secondarynamenode可以配置多个,master文件里面多写几个就可以。
2、千万记得如果要恢复数据是需要手动拷贝到namenode机器上的。不是自动的(参看上面写的恢复操作)。
3、镜像备份的周期时间是可以修改的,如果不想一个小时备份一次,可以改的时间短点。core-site.xml中的fs.checkpoint.period值

 

 

转帖于

分享到:
评论

相关推荐

    Hadoop中namenode和secondarynamenode工作机制讲解

    了解了namenode和secondarynamenode的工作机制之后,我们可以看到,在Hadoop系统中,通过这样的设计既保证了系统的高可用性,又确保了元数据的稳定性和一致性。这种机制是Hadoop处理大数据时能够保持高效和稳定运行...

    大数据与云计算技术 Hadoop概论和快速入门 共40页.ppt

    SecondaryNamenode,NameNode的镜像备份节点 ==Map Reduce== JobTracker,hadoop的Map/Reduce调度器,负责与TackTracker通信分配计算任务并跟踪任务进度。 TaskTracker,启动和管理Map和Reduce子任务的节点。

    Hadoop Namenode恢复

    Hadoop Namenode 恢复 Hadoop Namenode 是 Hadoop 分布式...通过修改配置文件、重启 Hadoop 和恢复 namenode,可以确保 namenode 的可靠性和可用性。同时,secondarynamenode 的存在也可以确保 namenode 的高可用性。

    最新大数据Hadoop面试题!(附答案解析).pdf

    NameNode和JobTracker都是Master节点,通常部署在单独的机器上。 5. 集群瓶颈 集群的瓶颈通常是磁盘IO,因为大数据面临海量数据,读写数据都需要IO,然后还要冗余数据,Hadoop一般备3份数据,所以IO就会打折扣。 ...

    搭建hadoop伪分布式.docx

    DataNode,JobTracker,TaskTracker,SecondaryNameNode),请注意分布式运行中的这几个结点的区别:从分布式存储的角度来说,集群中的结点由一个NameNode和若干个DataNode组成,另有一个SecondaryNameNode作为NameNode的...

    Hadoop试题试题库.doc

    NameNode 和 SecondaryNameNode NameNode 是 HDFS 的主节点,SecondaryNameNode 是 NameNode 的热备,帮助 NameNode 合并编辑日志,减少 NameNode 启动时间。SecondaryNameNode 应与 NameNode 部署到不同的节点。 ...

    Hadoop期末考试题总结.doc

    本资源摘要信息涵盖了Hadoop的多个方面,包括版本、4V特征、大数据存储、HDFS、MapReduce、SecondaryNameNode、Hadoop shell命令、集群管理工具等,非常适合Hadoop初学者和开发者学习和了解Hadoop的相关知识点。

    11_尚硅谷大数据之HDFS_NameNode和SecondaryNameNode1

    下面我们将详细探讨NameNode和SecondaryNameNode的工作机制,以及Fsimage和Edits文件的作用。 1. NameNode工作流程: - **首次启动**:NameNode会格式化存储,生成初始的Fsimage和Edits文件。之后,每次启动时,...

    Hadoop集群架构搭建分析

    该环境包括 NameNode、DataNode、JobTracker、TaskTracker、HMaster、HRegionServer、SecondaryNameNode、HQuorumPeer 等组件,其中 NameNode 负责管理文件系统,DataNode 负责存储和处理数据,JobTracker 负责任务...

    Hadoop大数据平台构建、规划大数据平台集群教学课件.pptx

    在这种模式下,NameNode、DataNode、JobTracker(在Hadoop 2.x中被ResourceManger替代)、TaskTracker(被NodeManager取代)以及SecondaryNameNode分别分布在不同的节点上,确保了系统的可扩展性和容错性。...

    SecondaryNameNode职责.pptx

    如果NameNode出现故障,可以使用SecondaryNameNode上的最新fsimage和edits来恢复NameNode的状态,确保服务的连续性。 5. **优化NameNode启动**: - 合并后的fsimage文件使得NameNode在重启时能快速加载整个文件...

    《大数据技术原理与操作应用》第6章习题答案.docx

    【大数据技术原理与操作应用】第6章习题答案涉及Hadoop分布式文件系统(HDFS)、Hadoop2.x架构、高可用性(HA)配置、NameNode与SecondaryNameNode的角色、资源管理、集群性能瓶颈等多个知识点。 1. Hadoop2.0集群服务...

    大数据技术Hadoop面试题.pdf

    Hadoop是一种开源的大数据处理框架,由Apache基金会开发,主要用于存储和处理大规模的数据集。本篇面试题主要涵盖了Hadoop的基础知识、HDFS(Hadoop Distributed File System)、NameNode、DataNode、Hadoop运行模式...

    大数据之hadoop伪分布模式启动.docx

    大数据之Hadoop伪分布模式启动 Hadoop伪分布模式是一种特殊的Hadoop集群模式,在这种模式下,所有...Hadoop伪分布模式是一种非常有用的模式,可以模拟一个完整的Hadoop集群环境,非常适合开发、测试和学习Hadoop。

    大数据技术之Hadoop知识分享 Hadoop面试题目及其答案 Hadoop面试题目整理 Hadoop使用经验 共9页.pdf

    - Hadoop的面试题涵盖了从基础概念到高级优化的各个方面,例如NameNode的角色、HDFS的数据复制策略、JobTracker和TaskTracker的工作机制、Hadoop的创始人、HDFS的块大小、集群的性能瓶颈、SecondaryNameNode的作用...

    大数据技术课程设计.docx

    4. 修改主机名和映射 5. 关闭防火墙 1.2 安装JDK 1.3 安装Hadoop 1.4 集群配置 1. 编写集群分发脚本xsync 2. 集群部署规划 表 1.1 hadoop101 hadoop102 hadoop103 HDFS NameNode DataNode DataNode ...

    配置hadoop支持LZO和snappy压缩.pdf

    例如,NameNode负责文件系统的命名空间管理,ResourceManager负责管理集群资源分配,而SecondaryNameNode则用于辅助NameNode进行数据的合并和检查点管理。 配置Hadoop以支持LZO和Snappy压缩,主要涉及到修改Hadoop...

    Hadoop HDFS原理分析,技术详解

    HDFS的高可用集群配置是指在NameNode和DataNode之间实现高可用的配置,通过设置多个NameNode和DataNode来实现高可用性和可扩展性。 HDFS是Hadoop项目的一部分,是一个分布式文件管理系统,具有高容错性、可扩展性和...

    hadoop3.x笔记.docx

    HDFS 由 NameNode、DataNode 和 SecondaryNameNode 组成。 1. NameNode(nn):负责管理元数据,维护文件系统的目录结构和文件索引,确保数据的一致性和可靠性。 2. DataNode(dn):负责存储实际数据,DataNode ...

    hadoop练习题--带答案-ec053bc6ad02de80d4d840e3.docx

    知识点:NameNode 是 Hadoop 集群中的单点问题,SecondaryNameNode 可以作为热备节点来解决这个问题。 24. 每个 map 槽就是一个线程。答案:否。 知识点:每个 map 槽不是一个线程,而是一个独立的 Map 任务。 25...

Global site tag (gtag.js) - Google Analytics