总结:HDFS

编程

一、HDFS的架构原理

一个HDFS集群,包含一个单独的NameNode和多个DataNode组成;

NameNode作为Master服务,它负责管理文件系统的命名空间和处理客户端对文件的访问请求。NameNode保存了文件的元数据信息(文件名,Black数量,Black所在位置等)。NameNode同时会接受DataNode的心跳信息。

DataNode作为Salve服务,在集群中存在多个;通常每个DataNode对应于一个物理节点。DataNode负责管理其节点上存储的Black块信息。同时需要周期性的给NameNode发送其上所有的Black信息。

二、HDFS的设计重点


HDFS被设计成一个可以在大集群中,跨机器做分布式的文件存储。它将所有文件存储成Black块组成的序列。除了最后一个Black以外,其余的Balck大小都一样。

HDFS中文件默认是一次写入,多次读取。HDFS严格要求,在任何之后都只有一个Write。

NameNode全权管理数据库的复制。它周期性的从DataNode接收心跳和每个Black上所存储的所有Black信息(也就是块状态报告)。

NameNode的内存中存储的是fsimage + fsedits;SecondaryNameNode负责定时的从NameNode中拉取fsImage + fsedits(默认是1小时),合并完成之后再发送给NameNode。以此来减轻NameNode的负担。
 

三、HDFS的特点


分布式文件系统。

保存多个副本,提供容错机制,副本丢失或宕机的自动恢复能力。

适合大数据处理,文件分块存储,默认是128M;文件与Black的对应关系存储在NameNode所在节点的内存中,方便文件的寻址和访问。如果小文件过多则会增加HDFS的NameNode节点的负担。

流式数据访问,一次写入,多次读取。仅支持Append,不支持修改文件内容;

水平扩展,增加DataNode节点,无需停止服务,自动完成;
 

 

 

参考:

HDFS一致性和高可用原理

Paxos协议和工程实现

以上是 总结:HDFS 的全部内容, 来源链接: utcz.com/z/518284.html

回到顶部