hadoop中常见元素的解释

secondarynamenode

图:

secondarynamenode根据文件的的大小对namenode的编辑日志和镜像日志 进行合并。

光从字面上来理解,很容易让一些初学者先入为主的认为: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文件系统。

时间: 2024-10-16 00:53:51

hadoop中常见元素的解释的相关文章

AD域中常见属性名词解释

AD域中常见属性名词解释 Active Directory(AD)活动目录 schema对象模型 Organizational Unit(OU)组织单位 Distinguished name(DN)识别名 Canonical Name(CN)正式名称 Domain Controllers(DC)域控制器 displayname显示名称 homephone住宅电话 家庭电话(M) givenname名(F) samaccounttype账号类型 mobile手机 primarygroupid分组I

内存中常见异常值的解释(比如0xcccccccc、0xcdcdcdcd和 0xfeeefeee 异常值 )

* 0xcccccccc : Used by Microsoft's C++ debugging runtime library to mark uninitialised stack memory * 0xcdcdcdcd : Used by Microsoft's C++ debugging runtime library to mark uninitialised heap memory * 0xfeeefeee : Used by Microsoft's HeapFree() to ma

xml配置文件中常见的命名空间解释

1.1schema文档即xml schema document,schema文件的格式是.xsd(xml schema document的缩写xsd). 简单来说:schema就是对xml的进一步约束.一旦确定了web.xml schema的引用,就表示要参考该引用所在位置的schema定义和约束的规则,这些规则指定了该xml里: 1)只能出现约束里指定的元素和指定的属性2)某些元素的顺序的也就不可改变的3)谁有子元素,有多少个,顺序是怎样的4)元素和属性的类型,元素是否为空,是否包含文本,数据

基因组拼接中常见的名词解释

Read:高通量测序平台产生的序列就称为reads. Contig:拼接软件基于reads之间的overlap区,拼接获得的序列称为Contig(重叠群). Scaffold:基因组de novo测序, 通过reads拼接获得Contigs后,往往还需要构建454 Paired-end库或Illumina Mate-pair库,以获得一定大小片段(如3Kb.6Kb.10Kb.20Kb)两端的序列.基于这些序列,可以确定一些Contig之间的顺序关 系,这些先后顺序已知的Contigs组成Scaf

页游中常见的游戏元素位置自适应浏览器大小变化之解决方案

在玩页游中,很常见的一个功能是,当你改变浏览器的大小时,页游中一些元素位置比如聊天框等会自动随着浏览器变化而变化,该功能如何实现了? 哈,解决方式是:监听舞台变化,获取变化后的舞台宽高(stage.stageWidth,stage,stageHeight),然后根据新的舞台宽高,再改变舞台上各个元素的位置. 上代码测试: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx=&

html中常见的行内元素和块级元素,还有常见的行内块元素

在html中,元素主要分为行内元素和块级元素: 行内元素指的是书写完成后不会自动换行,并且元素没有宽和高. 块级元素写完后会自动换行,有宽高可以修改. 还有一种特殊的元素叫做行内块元素. 大致分内是: 行内元素有:heda   meat   title  lable  span  br  a   style  em  b  i   strong 块级元素有:body  from  select  textarea  h1-h6 html table  button  hr  p  ol  ul

Hadoop中MapReduce多种join实现实例分析

一.概述 对于RDBMS中的join操作大伙一定非常熟悉,写sql的时候要十分注意细节,稍有差池就会耗时巨久造成很大的性能瓶颈,而在Hadoop中使用MapReduce框架进行join的操作时同样耗时,但是由于hadoop的分布式设计理念的特殊性,因此对于这种join操作同样也具备了一定的特殊性.本文主要对MapReduce框架对表之间的join操作的几种实现方式进行详细分析,并且根据我在实际开发过程中遇到的实际例子来进行进一步的说明. 二.实现原理 1.在Reudce端进行连接. 在Reudc

【译】常见 Java 异常解释(恶搞版)

常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎o(╯□╰)o) java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题,请重新阅读你的算术表达式并再次尝试. ArrayIndexOutOfBoundsException 请查看 IndexOutOfBoundsException.不同之处在于这个异常越界的元素不止一个. ArrayStoreException 你已用光了所有数组,需要从数组商店中购买更多的数组. C

qsort 函数的使用——对普通数组、指针数组、二维数组中的元素进行排序

在ANSI C中,qsort函数的原型是 #include <stdlib.h> void qsort(void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *)); 解释:qsort函数对含有nmemb个元素的数组进行排序,而base指针指向数组的第一个元素.这个数组的元素个数由size指定. compar函数对qsort的比较操作进行定义,所以可以定制数字的比较,字符串的比较,甚至结构体