大数据中,HDFS集群以Master-Slave模式运行,主要有两类节点:一个Namenode(即Master)和多个Datanode(即Slave)。Namenode管理者文件系统的Namespace。它维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata)。
HDFS Architecture:
Namenode
Namenode 办理者文件体系的Namespace。它维护着文件体系树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata)。办理这些信息的文件有两个,分别是Namespace 镜像文件(Namespace image)和操作日志文件(edit log),这些信息被Cache在RAM中,当然,这两个文件也会被耐久化存储在本地硬盘。Namenode记录着每个文件中各个块地点的数据节点的方位信息,可是他并不耐久化存储这些信息,由于这些信息会在体系启动时从数据节点重建。
Namenode结构图课笼统为如图:
客户端(client)代表用户与namenode和datanode交互来访问整个文件体系。客户端供给了一些列的文件体系接口,因而咱们在编程时,简直无须知道datanode和namenode,即可完结咱们所需求的功用。
Datanode
Datanode是文件体系的作业节点,他们依据客户端或者是namenode的调度存储和检索数据,而且定时向namenode发送他们所存储的块(block)的列表。
Namenode容错机制
没有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来运转。
原文链接:http://shitouer.cn/2012/12/HDFS-namenode-datanode/
【修改引荐】
- 分布式文件体系HDFS规划
- 分布式文件体系HDFS中Block介绍
- HBase规划:看上去很美
- 三种东西永久不要放到数据库里
- 没有数据驱动的流程和产品 大数据将毫无价值