fsimage和edit的区别

fsimage保存了最新的元数据检查点,其中包含HDFS文件系统的所有目录和文件inode的序列化信息。

edits保存自最新检查点后的命名空间的变化,文件系统客户端执行的所有写操作首先会被记录到Edits文件中。

每次NameNode启动的时候都会将FSimage文件读入内存,加载Edits里面的更新操作,保证内存中的元数据信息是最新的、同步的,可以看成NameNode启动的时候就将FSimage和Edits文件进行了合并。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
⼤数据基础整合 ⼤数据基础整合 第⼀章 第⼀章 信息科技需要处理的三⼤核⼼问题 信息科技需要处理的三⼤核⼼问题 信息存储、信息传输、信息处理 数据产⽣⽅式的变⾰ 数据产⽣⽅式的变⾰ 运营式系统阶段 数据库的出现使数据管理的复杂度⼤⼤降低,数据往往伴随着⼀定的运营活动⽽产⽣并记录在数据库中,数据的产⽣⽅式是被动的 ⽤户原创内容阶段 数据爆发产⽣于Web2.0时代,⽽Web2.0的最重要的标志就是⽤户原创内容 智能⼿机等移动设备加速内容产⽣ 数据产⽣⽅式是主动的 感知式系统阶段 感知式系统的⼴泛使⽤ ⼈类社会数据量第三次⼤的飞跃最终导致的⼤数据的产⽣ ⼤数据 ⼤数据4V概念(能简要概括) 概念(能简要概括) 数据量⼤、数据类型繁多、处理速度快、价值密度低 ⼤数据对思维⽅式的影响 ⼤数据对思维⽅式的影响 全样⽽⾮抽样、效率⽽⾮准确、相关⽽⾮因果 ⼤数据技术的不同层⾯及其功能 ⼤数据技术的不同层⾯及其功能 ⼤数据计算模式 ⼤数据计算模式 云计算关键技术 云计算关键技术 虚拟化、分布式存储、分布式计算、多租户等 物联⽹关键技术 物联⽹关键技术 识别和感知技术 ⽹络与通信技术 数据挖掘与融合技术 第⼆ 第⼆-三章 三章 分布式⽂件系统概念 分布式⽂件系统概念 分布式⽂件系统是⼀种通过⽹络实现⽂件在多台主机上进⾏分布式存储的⽂件系统 HDFS⽂件块 ⽂件块 HDFS默认⼀个块64MB,⼀个⽂件被分成多个块,以块作为存储单位 块的⼤⼩远远⼤于普通⽂件系统,可以最⼩化寻址开销 。 HDFS采⽤抽象的块概念可以带来以下⼏个明显的好处: ⽀持⼤规模⽂件存储 简化系统设计 适合数据备份 名称节点、数据节点的功能与⼯作原理(能简要概括) 名称节点、数据节点的功能与⼯作原理(能简要概括) 名称节点功能: 在HDFS中,名称节点(NameNode)负责管理分布式⽂件系统的命名空间,保存了两个核⼼的数据结构,即FsImageEditLog 名称节点⼯作原理: 在名称节点启动的时候,它会将FsImage⽂件中的内容加载到内存中,之后再 执⾏EditLog⽂件中的各项操作,使得内存中的元数据和实际的同步,存在内存 中的元数据⽀持客户端的读 操作。 ⼀旦在内存中成功建⽴⽂件系统元数据的映射,则创建⼀个新的FsImage⽂件 和⼀个空的EditLog⽂件 名称节点起来之后,HDFS中的更新操作会重新写到EditLog⽂件中,因为 FsImage⽂件⼀般都很⼤(GB级别的很常见),如果所有的更新操作都往 FsImage⽂件中添加,这样会导致系 统运⾏的⼗分缓慢,但是,如果往EditLog ⽂件⾥⾯写就不会这样,因为EditLog 要⼩很多。每次执⾏写操作之后,且在 向客户端发送成功代码之前,edits⽂件都需要同步更新 数据节点: 数据节点是分布式⽂件系统HDFS的⼯作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调 度来进⾏数据的存储和检 索,并且向名称节点定期发送⾃⼰所存储的块的列表 每个数据节点中的数据会被保存在各⾃节点的本地Linux⽂件系统中 第⼆名称节点的意义与功能(理解⼯作原理,能⽤⾃⼰语⾔说明) 第⼆名称节点的意义与功能(理解⼯作原理,能⽤⾃⼰语⾔说明) 第⼆名称节点是HDFS架构中的⼀个组成部分,它是⽤来保存名称节点中对HDFS 元数据信息的备份,并减少名称节点重启的时间。SecondaryNameNode⼀般是 单独运⾏在⼀台机器上 SecondaryNameNode的⼯作情况: (1)SecondaryNameNode会定期和 NameNode通信,请求其停⽌使⽤EditLog ⽂件,暂时将新的写操作写到⼀个新的⽂件 edit.new上来,这个操作是瞬间完成,上层 写⽇志的函数完 全感觉不到差别; (2)SecondaryNameNode通过HTTP GET⽅式从NameNode上获取到FsImageEditLog⽂件,并下载到本地的相应⽬录下 ; (3)SecondaryNameNode将下载下 来的FsImage载⼊到内存,然后⼀条⼀条地 执⾏EditLog⽂件中的各项更新操作,使得 内存中的FsImage保持最新;这个过程就是 EditLog和 FsImage⽂件合并; (4)SecondaryNameNode执⾏完(3 )操作之后,会通过post⽅式将新的 FsImage⽂件发送到NameNode节点上 (5)NameNode将从 SecondaryNameNode接收到的新的 FsImage替换旧的FsImage⽂件,同时将 edit.new替换EditLog⽂件,通过这个过程 EditLog就变⼩了 技术层⾯ 技术层⾯ 功能 功能 数据采集 与预处理 采⽤ELT⼯具将分布的、异构数据源中的数据,如关系数据、平⾯数据⽂件
大数据开发笔试全文共4页,当前为第1页。大数据开发笔试全文共4页,当前为第1页。1、 hdfs原理,以及各个模块的职责 大数据开发笔试全文共4页,当前为第1页。 大数据开发笔试全文共4页,当前为第1页。 答:Hadoop Distributed File System即: Hadoop分布式文件系统,就是把数据划分成不同的Block分别存储在不同节点的设备上。它分为两个部分:NameNode和DateNode,NameNode相当于一个领导,将文件系统的Meta-data存储在内存中,这些信息主要包括了文件信息、每一个文件对应的文件块的信息和每一个文件块在DataNode的信息等。它管理集群内的DataNode,当客户发送请求过来后,NameNode会根据Meta-data指定存储到哪些DataNode上,而其本身并不存储真实的数据。 2、 mr的工作原理 答:当客户提交作业后,MapReduce库先把任务splits不同的块,然后根据"移动计算比移动数据更明智"的思想,把任务分发到各个DataNode上。在不同的DataNode上分别执行Map操作,产生键值对,然后通过shuffle重新洗牌,把键值相同的键值对传给同一个reduce,把键值不同的键值对传给不同的reduce进行处理,最后输出结果。这些按照时间顺序包括:输入分片(input split)、map阶段、combiner阶段、shuffle阶段和reduce阶段。(5个阶段) 3、map方法是如何调用reduce方法的 答:Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方,Hadoop的shuffle过程就是从map端输出到reduce端输入之间的过程。 map过程的输出是写入本地磁盘而不是HDFS,但是一开始数据并不是直接写入磁盘而是缓冲在内存中,缓存的好处就是减少磁盘I/O的开销,提高合并和排序的速度。默认的内存缓冲大小是100M(可以配置),所以在书写map函数的时候要尽量减少内存的使用,为shuffle过程预留更多的内存,因为该过程是最耗时的过程。当缓冲的内存大小使用超过一定的阈值(默认80%),一个后台的线程就会启动把缓冲区中的数据写入(spill)到磁盘中,往内存中写入的线程继续写入知道缓冲区满,缓冲区满后线程阻塞直至缓冲区被清空。在数据spill到磁盘的过程中会有一些额外的处理,调用partition函数、combine函数(如果设置)、对数据进行排序(按key排序)。如果发生多次磁盘的溢出写,会在磁盘上形成几个溢出写文件,在map过程结束时,要将这些文件进行合并生成一个大的分区的排序的文件。 reduce端可能从n多map的结果中获取数据,而这些map的执行速度不尽相同,当其中一个map运行结束时,reduce就会从jobtractor中获取该信息。map运行结束后tasktractor会得到消息,进而将消息汇报给jobtractor,reduce定时从jobtractor获取该信息,reduce端默认有5个线程从map端拖拉数据。 4、shell如何判断文件是否存在,如果不存在该如何处理? if [ ! -f "$file" ]; then touch "$file" fi 不存在就创建一个吧。 大数据开发笔试全文共4页,当前为第2页。大数据开发笔试全文共4页,当前为第2页。5、fsimageedit区别? 大数据开发笔试全文共4页,当前为第2页。 大数据开发笔试全文共4页,当前为第2页。 答:fsimage保存了最新的元数据检查点,edits保存自最新检查点后的命名空间的变化。从最新检查点后,hadoop将对每个文件的操作都保存在edits中,为避免edits不断增大,secondary namenode就会周期性合并fsimageedits成新的fsimageedits再记录新的变化, 这种机制有个问题:因edits存放在Namenode中,当Namenode挂掉,edits也会丢失,导致利用secondary namenode恢复Namenode时,会有部分数据丢失。 6、hadoop1和hadoop2的区别? 答:Hadoop2相比较于Hadoop1.x来说,HDFS的架构与MapReduce的都有较大的变化,且速度上和可用性上都有了很大的提高,Hadoop2中有两个重要的变更:首先HDFS的NameNodes可以以集群的方式布署,增强了NameNodes的水平扩展能力和可用性,可以同时部署多个NameNode,这些NameNodes之间是相互独立,也就是说他们不需要相互协调,DataNode同时在所有NameNodes注册,做为他们共有的存储节点,并定时向所有的这些NameNodes发送心跳块使用情况的报告

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值