先上图,文章以后再上

截图有先后 所以有些延迟,但是不耽误总体的理解(active-nn=a-nn=active-namenode; s-nn=standby-nn=standby-namenode; journalnode=jn;edits_log=elog ; fsimage=fsg )

一般认为journalnode有2n+1台,如果大于等于n+1台成功写入,就算写入jn成功。

standby-nn 会定时拉取3台jn节点(假设有3台jn)的edits_log(只拉取处于finalized状态的edits_log,in-progress并不会拉取因为他可能会改变),再与本地的fsimage元数据镜像文件做merge操作( s-nn 并不会同时把edits_log 写入到本地磁盘上。下图中磁盘有edits_log是因为他之前是active-nn(从最后修改时间也可以看出来)。合并操作是在standby-nn内存中完成,完成后会落地新fsimage文件如下图)。

当standby-nn merge完毕后,旧的fsimage不会立即删除而会保留一段时间等待被roll掉,当然版本号会比新merge的fsimage要小。与此同时standby-nn会把新merge的镜像文件推给active-nn ,active-nn旧的镜像也不会立即删除,也是等待被roll掉,新推过来的fsimage镜像也是要比旧的镜像编号要大。

注意:s-nn会比a-nn少一些元数据信息(少的是s-nn在拉取elog时处于in-progress的日志),所以当a-nn宕机或处于非健康状态时,s-nn在切换成a-nn之前要重新拉取大于本地fsg号的elog文件做merge操作,这样s-nn才是最新的元数据,可以切换成a-nn了。
(TODO:这里有个疑问,就是a-nn处于异常状态的那一刻会有elog处于in-progress,a-nn来不及处理这部分elog(比如a-nn突然宕机),s-nn是如何处理这部分elog的)
问题:主备切换时,s-nn从jn获取最新elog,在内存中回放(这时合并的最新fsimage会不会落地),目前看现象是不会落地(需看源码确认)

更多细节会贴源码介绍


hadoop hdfs 元数据 journalnode editslog fsimage的更多相关文章

  1. Hadoop HDFS元数据目录分析

    元数据目录分析 在第一次部署好Hadoop集群的时候,我们需要在NameNode(NN)节点上格式化磁盘: $HADOOP_HOME/bin/hdfs namenode -format 格式化完成之后 ...

  2. 大数据 - hadoop - HDFS+Zookeeper实现高可用

    高可用(Hign Availability,HA) 一.概念 作用:用于解决负载均衡和故障转移(Failover)问题. 问题描述:一个NameNode挂掉,如何启动另一个NameNode.怎样让两个 ...

  3. Hadoop HDFS分布式文件系统设计要点与架构

      Hadoop HDFS分布式文件系统设计要点与架构     Hadoop简介:一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群 ...

  4. hadoop hdfs 高可用

    单点故障: 如果某一个节点或服务出了问题,导致服务不可用 单点故障解决方式: 1.给容易出故障的地方安排备份 2.一主一备,要求同一时刻只能有一个对外提供服务 3.当active挂掉之后,standb ...

  5. hadoop hdfs ha 模式

    这是我自己在公司一个搭建公司大数据框架是自己的选项,在配置yarn ha 出现了nodemanager起不来的问题于是我把yarn搭建为普通yarn 如果有人解决 高yarn的nodemanager问 ...

  6. Hadoop基础-镜像文件(fsimage)和编辑日志(edits)

    Hadoop基础-镜像文件(fsimage)和编辑日志(edits) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看日志镜像文件(如:fsimage_00000000000 ...

  7. Hadoop HDFS, YARN ,MAPREDUCE,MAPREDUCE ON YARN

    HDFS 系统架构图 NameNode 是主节点,存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在的DataNode等.NameNode将 ...

  8. Hadoop — HDFS的概念、原理及基本操作

    1. HDFS的基本概念和特性 设计思想——分而治之:将大文件.大批量文件分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析.在大数据系统中作用:为各类分布式运算框架(如:map ...

  9. Hadoop HDFS NameNode工作机制

    Secondary namenode 首先,我们假设如果存储在Namenode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低.因此,元数据需要存放在内存中.但如果只存在内存中 ...

随机推荐

  1. SVN怎么触发Jenkins自动构建

    通常,有几种方式可以在SVN仓库发生改变时触发Jenkins进行构建.第一种是,Jenkins主动轮询SVN仓库:第二种是,在SVN客户端(如TortoiseSVN)创建客户端hooks来触发构建:第 ...

  2. 黄聪:PHP JSON_ENCODE 不转义中文汉字的方法

    ios程序中不识别读取到的JSON数据中 \u开头的数据. PHP 生成JSON的时候,必须将汉字不转义为 \u开头的UNICODE数据. 网上很多,但是其实都是错误的,正确的方法是在json_enc ...

  3. <亲测>CentOS7中使用yum安装Nginx的方法

    CentOS7中使用yum安装Nginx的方法   最近无意间发现Nginx官方提供了Yum源.因此写个文章记录下. 1.添加源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了 ...

  4. Array and Colon in Matlab

    1. Colon x=1:4 % x=[1 2 3 4] x=1:2:5 % x=[1 3 5]  (递增值为2) 2. Array 用一个矩阵作为例子: A=[1 2 3; 4 5 6; 7 8 9 ...

  5. 详细记录sql运行时间(精确到毫秒)

    写程序的人,往往需要分析所写的SQL语句是否已经优化过了,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了. 通过设置STATISTICS我们可以查看执行SQL时的 ...

  6. 安卓权威编程指南 - 第五章学习笔记(两个Activity)

    学习安卓编程权威指南第五章的时候自己写了个简单的Demo来加深理解两个Activity互相传递数据的问题,然后将自己的学习笔记贴上来,如有错误还请指正. IntentActivityDemo学习笔记 ...

  7. BloomFilter理解

    知道BloomFilter是因为RocksDB数据库中用到了这个技术,用于判断1个数据是否存在于1个SST文件中. BloomFilter可能存在误判,就是判断数据是存在集合中,而实际上可能不存在,概 ...

  8. Jmeter(三十九)User.Properties定义全局变量

    “烟”从物质上满足吸烟者对尼古丁的依赖,但“烟”更从精神上满足了人们对“思想”的欲望---在抽烟的时刻,每个男人都可能成为思想家. ---<冲突> 前面有记到jmeter读取外部文件内容的 ...

  9. Socket拆包和解包

    对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了. 一.为什么基于TCP的通讯程序需 ...

  10. Aspose.Word 输出表格后空格字符丢失的解决方法

    将datatable输出到word,执行如下代码. doc.MailMerge.ExecuteWithRegions(outDt); 执行完后发现第一列含前缀空格的字段值,空格字符被自动清除了. 解决 ...