HDFS设计基础与目标

原创
2015/03/10 17:29
阅读数 185

设计基础:

(1)由于硬件错误是常态。因此需要冗余。

(2)流式数据访问,即数据批量读取,而非随机读取。hadoop擅长做的是数据分析而不是事务处理。

(3)大规模数据集

(4)简单一致性模型。为了降低系统复杂度,对文件采取一次性写多次读的逻辑设计,即是文件一经写入,关闭后,就再也不能修改。

(5)程序采用“数据就近”原则分配节点执行。

 

体系结构:

hdfs采用主从结构,Namenode属于主端,Datanode属于从端。

Namenode:

    1) 管理文件系统的命名空间。

    2) 记录每个文件数据块在Datanode上的位置和副本信息。

    3) 协调客户端对文件的访问。

    4) 记录命名空间内的改动或者空间本身属性的改动。

    5) Namenode使用事务日志记录HDFS元数据的变化。使用映像文件存储文件系统的命名空间,包括文件映射、文件属性等。

从社会学的角度看,Namenode是HDFS的管理者,发挥管理、协调、操控的作用。

 

 Datanode:

    1) 负责所在物理节点的存储管理。

    2) 一次写入,多次读取,不能修改。

    3) 文件由数据库组成,一般情况下,数据块的大小为64MB。

    4) 数据尽量散布到各个节点。

     从社会学的角度看,Datanode是HDFS的工作者,发挥着按照Namenode的命令干活,并且把干活的进展和问题反馈到Namenode的作用。

 

SecondaryNameNode:

    1) HA的一个解决方案。但不支持热备。配置即可。

    2) 执行过程:从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,同时重置NameNode的edits.

    3) 默认在安装在NameNode节点上,但这样...不安全!

 

可靠性:

(1)冗余副本策略

(2)机架策略

(3)心跳机制

(4)安全模式

(5)校验和

(6)回收站

(7)元数据保护

(8)快照机制

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部