Hadoop中SecondaryNameNode工作机制

首先来看一下HDFS的结构,如下图:

如上图,在HDFS架构中,NameNode是职责是管理元数据信息,DataNode的职责是负责数据存储,那么SecondaryNameNode的作用是什么呢?

其实SecondaryNameNode是hadoop1.x中HDFS HA的一个解决方案,下面我们来看一下SecondaryNameNode工作的流程,如下图:

1.NameNode管理着元数据信息,元数据信息会定期的刷到磁盘中,其中的两个文件是edits即操作日志文件和fsimage即元数据镜像文件,新的操作日志不会立即与fsimage进行合并,也不会刷到NameNode的内存中,而是会先写到edits中(因为合并需要消耗大量的资源)。当edits文件的大小达到一个临界值(默认是64MB)或者间隔一段时间(默认是1小时)的时候checkpoint会触发SecondaryNameNode进行工作。

2.当触发一个checkpoint操作时,NameNode会生成一个新的edits即上图中的edits.new文件,同时SecondaryNameNode会将edits文件和fsimage复制到本地。

3.SecondaryNameNode将本地的fsimage文件加载到内存中,然后再与edits文件进行合并生成一个新的fsimage文件即上图中的Fsimage.ckpt文件。

4.SecondaryNameNode将新生成的Fsimage.ckpt文件复制到NameNode节点。

5.在NameNode结点的edits.new文件和Fsimage.ckpt文件会替换掉原来的edits文件和fsimage文件,至此,刚好是一个轮回即在NameNode中又是edits和fsimage文件了。

6.等待下一次checkpoint触发SecondaryNameNode进行工作,一直这样循环操作。

注:checkpoint触发的条件可以在core-site.xml文件中进行配置,如下:

[html] view plain copy

  1. <property>
  2. <name>fs.checkpoint.period</name>
  3. <value>3600</value>
  4. <description>The number of seconds between two periodic checkpoints.
  5. </description>
  6. </property>
  7. <property>
  8. <name>fs.checkpoint.size</name>
  9. <value>67108864</value>
  10. <description>The size of the current edit log (in bytes) that triggers
  11. a periodic checkpoint even if the fs.checkpoint.period hasn‘t expired.
  12. </description>
  13. </property>
时间: 2024-10-10 17:29:53

Hadoop中SecondaryNameNode工作机制的相关文章

HDFS中DataNode工作机制

1.DataNode工作机制 1)一个数据块在datanode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据(包括数据块的长度,块数据的校验和,以及时间戳). 2)DataNode启动后向namenode注册,通过后,周期性(1小时)的向namenode上报所有的块信息. 3)心跳是每3秒一次,心跳返回结果带有namenode给该datanode的命令如复制块数据到另一台机器,或删除某个数据块.如果超过10分钟没有收到某个datanode的心跳,则认为该节点不可用. 4)集

Hadoop中的RPC机制

1.  RPC--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据.在OSI网络通信模型中,RPC跨越了传输层和应用层.RPC使得开发包括网络分布式多程序在内的应用程序更加容易. 2.  RPC采用客户机/服务器模式.请求程序就是一个客户机,而服务提供程序就是一个服务器.首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息.在服务器端,进程保持睡眠状

hadoop中secondarynamenode节点添加方法

当时,hadoop已经安装成功,但是secondarynamenode没有启动 后来经过研究,原来是配置的目录有问题 首先修改一下shell文件 文件路径:/home/work/hadoop/bin 原来:master  现在:secondarynamenode [[email protected] bin]$ cat start-dfs.sh #!/usr/bin/env bash # Licensed to the Apache Software Foundation (ASF) under

tomcat中Servlet的工作机制

在研究Servlet在tomcat中的工作机制前必须先看看Servlet规范的一些重要的相关规定,规范提供了一个Servlet接口,接口中包含的重要方法是init.service.destroy等方法,Servlet在初始化时要调用init方法,在销毁时要调用destroy方法,而对客户端请求处理时则调用service方法.对于这些机制的支持都必须由Tomcat内部去支持,具体则是由Wrapper容器提供支持. 在tomcat中消息流的流转机制是通过四个不同级别的容器管道机制进行流转的,对于每个

大数据学习之HDFS的工作机制07

1:namenode+secondaryNameNode工作机制 2:datanode工作机制 3:HDFS中的通信(代理对象RPC) 下面用代码来实现基本的原理 1:服务端代码 package it.dawn.HDFSPra.RPC.server; import java.io.IOException; import org.apache.hadoop.HadoopIllegalArgumentException; import org.apache.hadoop.conf.Configura

hadoop namenode datanode hdfs工作机制

大家都知道namenode是hadoop中的一个很重要的节点,因为他存在着跟datanode的交互跟客户端的交互,存储着dotanode中的元数据,所以就很想学习他们是如何沟通并能保证数据在任何情况下都不会丢失那? namenode的作用: 1.维护元数据信息. 2.维护hdfs的目录树. 3.相应客户端的请求. 我们先来看一下namenode大致的工作流程 可以看到namenode这边里面有三个存储单位,edits文件,edits.new 文件 ,fsimage文件,还有内存. edits文件

Hadoop Mapreduce 工作机制

一.Mapreduce 中的Combiner package com.gec.demo; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer; import java.io.IOException; public class WcCombiner extends Reducer<Text, IntWritable,

结合手机上网流量业务来说明Hadoop中的自定义数据类型(序列化、反序列化机制)

大家都知道,Hadoop中为Key的数据类型必须实现WritableComparable接口,而Value的数据类型只需要实现Writable接口即可:能做Key的一定可以做Value,能做Value的未必能做Key.但是具体应该怎么应用呢?--本篇文章将结合手机上网流量业务进行分析. 先介绍一下业务场景:统计每个用户的上行流量和,下行流量和,以及总流量和. 本次描述所用数据: 日志格式描述: 日志flowdata.txt中的具体数据: 接下来贴出详细代码,代码中含有详细注释,从代码中可以看出,

3 weekend110的hadoop中的RPC框架实现机制 + hadoop中的RPC应用实例demo

hadoop中的RPC框架实现机制 RPC是Remotr Process Call, 进程间的远程过程调用,不是在一个jvm里. 即,Controller拿不到Service的实例对象. hadoop中的RPC应用实例demo 在windows是调用端,在linux里是服务端. 在这里,需要LoginServiceinterface.java 停止 出错误了,很明显. 这是个很好的思考题?