ITPub博客

首页 > Linux操作系统 > Linux操作系统 > HDFS基础介绍 ---- 体系结构

HDFS基础介绍 ---- 体系结构

原创 Linux操作系统 作者:mikeliuy 时间:2012-10-21 23:45:28 0 删除 编辑

一、HDFS包含3类节点

 

1、NameNode,用来管理文件系统的命名空间,维护整个系统的目录树和文件索引目录;并以2种形式存储在NameCode上,一个是Namespace image(命名空间镜像),一个是Edit log(编辑日志)。

并且可以NameNode获得文件的每个块具体存储在的DataNode(这些信息只保存在内存中,是NameNode启动时,集群的具体情况动态的创建这些信息的)。

在整个集群中,只能有一个NameNode。

2、DataNode,是数据/文件块存储的节点,这些节点可以有多个,并且通过心跳机制向NameNode传送所存储的块的信息。

(注)块是HFDS的一个抽象概念,默认为64MB。

3、Secondary NameNode,最初从名称看,认为它是类似备库一种节点。但是看了介绍,发现这类节点不是备份节点那么简单,这类节点是对NameNode的一种补充,对Namespace Image和Edit Log计算合并,是Namespace image的checkpoint创建的同时,不会影响到客户端的访问,因为这种计算是非常强占资源。

这种类型的节点是可选的。

 

HDFS的NameNode是单节点的结构,这个节点出现故障,会造成整个集群不可用,所以个人觉得这是Hadoop的一个缺陷,也是今后学习时要关注的一个主题。

 

二、HFDS体系结构

HFDS也是以一种master/slave的结构。HFDS集群有一个Namenode和多个DataNode组成。NameNode是一个中心,它不仅对内进行管理,还要对外“接待”客户端的访问。

1、副本存放和读取策略

在HFDS中,数据块的存储都是采用多副本的存放方案,这样可以保障数据的安全;并且使用一种叫做“机架感知”的策略进行副本的存放。

举例说明,副本数是3,基于这种策略,有两份副本会保存到同一个机架上的不同几点上,将第三份副本存放到另外的机架;这样即可以充分利用同机架内的高网路带宽;也可以保证不会因为一个机架出现故障,所带来的数据丢失的风险。

HDFS在读取数据时,会尽量使用离客户端最近的副本,如果读取程序的同机架有数据副本,则会一直读取它。

 

2、安全模式

NameNode启动时,进入到一个特殊状态,即安全模式,这时不会进行数据块的复制的,会接收所有DataNode的心跳信号和块状态报告。

NameNode检测数据块的副本数目没有达到最小值(配置的),要等待30秒钟。

 

3、文件安全

(1)NameNode上的文件是这个系统最为重要的,需要进行备份,转储到其他文件系统中。

(2)使用Secondary NameNode进行周期性的,将Namespace image和Edit log的合并,并且在该节点上保留一份,再传送到NameNode上,替换以前的image。

 

hdfsarchitecture.gif

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26812308/viewspace-746902/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-06-18

  • 博文量
    72
  • 访问量
    420994