Namenode 管理者文件系统的Namespace,那八个文本也会被持久化存储在该地硬盘

1.namenode:

Namenode 管理着文件系统的Namespace。它爱护着文件系统树(filesystem
tree)以及文件树中负有的公文和文书夹的元数据(metadata)。管理那个音信的文件有多少个,分别是Namespace
镜像文件(Namespace image)和操作日志文件(edit
log),这么些信息被Cache在RAM中,当然,那七个文件也会被持久化存储在当地硬盘。Namenode记录着各样文件中相继块所在的多少节点的地方音讯,不过她并不持久化存储那个音讯,因为那一个音信会在系统启动时从数额节点重建。
Namenode结构图抽象图如下

image.png

1:NameNode

Namenode容错机制:

从不Namenode,HDFS就不可以做事。事实上,借使运行namenode的机械坏掉的话,系统中的文件将会完全不见,因为尚未其余措施能够将放在分化datanode上的文件块(blocks)重建文件。因而,namenode的容错机制格外主要,Hadoop提供了三种体制。

首先种方法是将持久化存储在地头硬盘的文件系统元数据备份。Hadoop可以经过布署来让Namenode将她的持久化状态文件写到区其余文件系统中。这种写操作是同步并且是原子化的。相比广泛的配置是在将持久化状态写到本地硬盘的同时,也写入到一个长途挂载的网络文件系统(NFS)。

其次种艺术是运作一个援助的Namenode(Secondary Namenode)。
事实上Secondary
Namenode并不可以被看做Namenode它的第一效用是限期的将Namespace镜像与操作日志文件(edit
log)合并,以预防操作日志文件(edit log)变得过大。平日,Secondary Namenode
运行在一个独立的物理机上,因为联合操作要求占用多量的CPU时间以及和Namenode相当的内存。帮衬Namenode保存着统一后的Namespace镜像的一个备份,万一什么时候Namenode宕机了,这几个备份就可以用上了。

只是帮衬Namenode总是落后于主Namenode,所以在Namenode宕机时,数据丢失是不可翻盘的。在那种情景下,一般的,要结成第一种办法中关系的长途挂载的网络文件系统(NFS)中的Namenode的元数据文件来选用,把NFS中的Namenode元数据文件,拷贝到协理Namenode,并把帮忙Namenode作为主Namenode来运行。

image.png

上边的那张图片展现了NameNode怎么把元数据保存到磁盘上的。那里有五个不等的文本:

  1. fsimage – 它是在NameNode启动时对所有文件系统的快照
  2. edit logs – 它是在NameNode启动后,对文件系统的改动种类
    唯有在NameNode重启时,edit
    logs才见面并到fsimage文件中,从而获取一个文件系统的新式快照。但是在产品集群中NameNode是很少重启的,那也表示当NameNode运行了很长日子后,edit
    logs文件会变得很大。在那种场馆下就会出现下边一些标题:
  3. edit logs文件会变的很大,怎么去管理这些文件是一个挑战。
  4. NameNode的重启会花费很长日子,因为有很多变更(在edit
    logs中]要合并到fsimage文件上)。
    3.
    假设NameNode挂掉了,那我们就丢掉了好多变更因为那时候的fsimage文件相当旧。

从而为了打败那么些难题,大家要求一个简单管理的建制来帮助咱们减小edit
logs文件的轻重缓急和获取一个最新的fsimage文件,那样也会减小在NameNode上的压力。那跟Windows的苏醒点是非凡像的,Windows的还原点机制允许我们对OS进行快照,那样当系统发生难点时,大家能够回滚到最新的三次苏醒点上


2:SecondNameNode

2、Secondary NameNode

它的义务是统一NameNode的edit logs到fsimage文件中。

image.png

上边的图片体现了Secondary NameNode是怎么工作的:
率先,它定时到NameNode去赢得edit
logs,并更新到fsimage上。[笔者注:Secondary
NameNode自己的fsimage]如果它有了新的fsimage文件,它将其拷贝回NameNode中。NameNode在下次重启时会使用这么些新的fsimage文件,从而收缩重启的时间。Secondary
NameNode的所有目标是在HDFS中提供一个检查点。它只是NameNode的一个出手节点。这也是它在社区内被认为是检查点节点的原委。它并不是Namenode的一个备份

地点的图样呈现了Secondary NameNode是怎么工作的:

  1. 首先,它定时到NameNode去获得edit
    logs,并创新到fsimage上。[笔者注:Secondary NameNode自己的fsimage]
  2. 假诺它有了新的fsimage文件,它将其拷贝回NameNode中。
  3. NameNode在下次重启时会使用那个新的fsimage文件,从而裁减重启的年月。
    Secondary
    NameNode的整个目标是在HDFS中提供一个检查点。它只是NameNode的一个副手节点。那也是它在社区内被认为是检查点节点的原委。

今天,我们精晓了Secondary
NameNode所做的但是是在文件系统中设置一个检查点来增援NameNode更好的办事。它不是要替代掉NameNode也不是NameNode的备份。所以从现在起,让我们养成一个司空见惯,称呼它为检查点节点吧。


3:DataNode

3.Datanode

Datanode是文件系统的劳作节点,他们基于客户端依然是namenode的调度存储和摸索数据,并且定期向namenode发送他们所蕴藏的块(block)的列表。
集群中的每个服务器都运作一个DataNode后台程序,这么些后台程序负责把HDFS数据块读写到本地的文件系统。当需求经过客户端读/写某个
数据时,先由NameNode告诉客户端去哪个DataNode举行实际的读/写操作,然后,客户端直接与这一个DataNode服务器上的后台程序举办通信,并且对有关的多少块进行读/写操作。

4:ResourceManager

5:NodeManager


参照博客:

http://dongxicheng.org/mapreduce-nextgen/nodemanager-architecture/

http://dongxicheng.org/mapreduce-nextgen/yarnmrv2-resource-manager-infrastructure/

http://www.aboutyun.com/thread-7778-1-1.html


1、NameNode介绍

Namenode 管理者文件系统的Namespace。它爱惜着文件系统树(filesystem
tree)以及文件树中有所的文本和文件夹的元数据(metadata)。管理这么些音讯的公文有五个,分别是Namespace
镜像文件(Namespace image)和操作日志文件(edit
log),这个音讯被Cache在RAM中,当然,那八个文本也会被持久化存储在地面硬盘。Namenode记录着每个文件中逐条块所在的数量节点的职位音信,但是他并不持久化存储这一个信息,因为这几个新闻会在系统启动时从数量节点重建。

Namenode结构图课抽象为如图:

图片 1

客户端(client)代表用户与namenode和datanode交互来访问整个文件系统。客户端提供了有些列的文件系统接口,因此大家在编程时,大概不用知道datanode和namenode,即可到位大家所急需的功力。

1.1Namenode容错机制

并未Namenode,HDFS就不可以办事。事实上,如果运行namenode的机器坏掉的话,系统中的文件将会全盘不见,因为尚未其余方法能够将身处不一样datanode上的文书块(blocks)重建文件。由此,namenode的容错机制万分重大,Hadoop提供了两种体制。

先是种方法是将持久化存储在本土硬盘的文件系统元数据备份。hadoop可以通过布署来让Namenode将他的持久化状态文件写到分化的文件系统中。那种写操作是联合并且是原子化的。相比常见的布局是在将持久化状态写到本地硬盘的同时,也写入到一个远道挂载的网络文件系统。

其次种形式是运作一个扶持的Namenode(Secondary Namenode)。 事实上Secondary
Namenode并不可以被当作Namenode它的最主要功能是期限的将Namespace镜像与操作日志文件(edit
log)合并,以免患操作日志文件(edit log)变得过大。寻常,Secondary Namenode
运行在一个单身的物理机上,因为联合操作须求占用大批量的CPU时间以及和Namenode格外的内存。辅助Namenode保存着统一后的Namespace镜像的一个备份,万一哪一天Namenode宕机了,那么些备份就可以用上了。

可是帮衬Namenode总是落后于主Namenode,所以在Namenode宕机时,数据丢失是不可逆袭的。在那种情形下,一般的,要结成第一种办法中关系的中距离挂载的网络文件系统(NFS)中的Namenode的元数据文件来采纳,把NFS中的Namenode元数据文件,拷贝到支持Namenode,并把扶助Namenode作为主Namenode来运转。

当然在hadoop 2.x 中,已经有了新的缓解方案,那就是NameNode
HA(因为Hadoop还包含 ResourceManage
HA),hadoop联邦
Hadoop
HA是指同时起步多少个NameNode,一个高居工作情景,其余一个高居随时待命状态,那样在处于工作情况的NameNode所在的服务器宕机时,可在数额不丢掉的情状下,手工或者电动切换来其它一个NameNode提供劳动。


2、Datanode介绍

Datanode是文件系统的做事节点,他们基于客户端或者是namenode的调度存储和寻找数据,并且定期向namenode发送他们所蕴藏的块(block)的列表。

集群中的每个服务器都运作一个DataNode后台程序,那么些后台程序负责把HDFS数据块读写到本地的文件系统。当须求经过客户端读/写某个
数据时,先由NameNode告诉客户端去哪个DataNode举办具体的读/写操作,然后,客户端直接与那么些DataNode服务器上的后台程序进行通讯,并且对相关的数目块举办读/写操作。


3、Secondary NameNode介绍

此外一篇关于Secondary NameNode
的博客,描述的也格外显明:点击阅读

Secondary  NameNode是一个用来监督HDFS状态的提携后台程序。就想NameNode一样,每个集群都有一个Secondary  NameNode,并且配备在一个独门的服务器上。Secondary  NameNode不一样于NameNode,它不收受或者记录任何实时的数据变动,不过,它会与NameNode举办通讯,以便定期地保存HDFS元数据的
快照。由于NameNode是单点的,通过Secondary  NameNode的快照功效,可以将NameNode的宕机时间和数目损失下跌到细微。同时,假若NameNode发生问题,Secondary  NameNode能够马上地看成备用NameNode使用。

3.1NameNode的目录结构如下:

${dfs.name.dir}/current/VERSION

/edits

/fsimage

/fstime

3.2Secondary NameNode的目录结构如下:

${fs.checkpoint.dir}/current/VERSION

/edits

/fsimage

/fstime

/previous.checkpoint/VERSION

/edits

/fsimage

/fstime

图片 2

如上图,Secondary NameNode紧假诺做Namespace image和Edit log合并的。

那么那二种文件是做什么的?当客户端执行写操作,则NameNode会在edit
log记录下来,(我感到这一个文件有些像Oracle的online
redo logo file)并在内存中保留一份文件系统的元数据。

Namespace
image(fsimage)文件是文件系统元数据的持久化检查点,不会在写操作后马上更新,因为fsimage写万分慢(那一个有比较像datafile)。

是因为Edit
log不断升高,在NameNode重启时,会招致长日子NameNode处于安全形式,不可用状态,是可怜不相符Hadoop的安顿性初衷。所以要周期性合并Edit
log,可是这几个工作由NameNode来成功,会占据多量资源,这样就应运而生了Secondary
NameNode,它可以展开image检查点的处理工作。步骤如下:

(1)       Secondary NameNode请求NameNode举办edit
log的轮转(即创立一个新的edit log),将新的编制操作记录到新生成的edit
log文件;

(2)       通过http
get方式,读取NameNode上的fsimage和edits文件,到Secondary NameNode上;

(3)      
读取fsimage到内存中,即加载fsimage到内存,然后实施edits中所有操作(类似OracleDG,应用redo
log),并生成一个新的fsimage文件,即这几个检查点被成立;

(4)       通过http post格局,将新的fsimage文件传送到NameNode;

(5)      
NameNode使用新的fsimage替换原来的fsimage文件,让(1)创设的edits替代原先的edits文件;并且更新fsimage文件的检查点时间。

全总处理进程完毕。

Secondary
NameNode的拍卖,是将fsimage和edites文件周期的统一,不会招致nameNode重启时造成长日子不得访问的动静。


4、ResourceManager介绍

图片 3

ResourceManage
即资源管理,在YARN中,ResourceManager负责集群中所有资源的集合管理和分配,它接受来自种种节点(NodeManager)的资源汇报音讯,并把那几个音讯按照一定的方针分配给各样应用程序(实际上是ApplicationManager)。

RM包涵Scheduler(定时调度器)和ApplicationManager(应用管理器)。Schedular负责向应用程序分配资源,它不做监控以及应用程序的图景跟踪,并且不有限帮忙会重启应用程序本身依然硬件出错而推行破产的应用程序。ApplicationManager负责接受新的职分,协调并提供在ApplicationMaster容器退步时的重启效用。

此地大致介绍以下ApplicationMaster,每个应用程序的AM负责项Scheduler申请资源,以及跟踪这个资源的施用处境和资源调度的监控

更加多关于ResourceManager的牵线参考:点击阅读


5、NodeManager介绍

图片 4

NM是ResourceManager在每台机器上的代办,负责容器管理,并监控它们的资源利用情况,以及向ResourceManager/Scheduler提供资源采纳报告

相关文章

网站地图xml地图