刚刚接触HDFS,感觉HDFS的数据可靠性非常高,记录一下..

一HDFS的基本原理

HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode)。名称节点作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问。集群中的数据节点一般是一个节点运行一个数据节点进程,负责处理文件系统客户端的读/写请求,在名称节点的统一调度下进行数据块的创建、删除和复制等操作。每个数据节点的数据实际上是保存在本地Linux文件系统中的。

wKioL1goccvQM1iDAADaWeEAxNk101.jpg-wh_50


二HDFS写操作

写文件的过程:是一种流水线复制



wKioL1gocfqS6-i3AAEaj4cGiFI558.jpg-wh_50





三HDFS读操作



wKiom1gocjmRNuosAAETak6f4eY933.jpg-wh_50



        HDFS 的文件块多副本分散存储机制保障了数据存储的可靠性,当读取文件时 DataNode 挂了只需要失败转移到其他副本所在的 DataNode 继续读取,而对于发生副本块错误,读取到的文件数据块若校验失败可认定为损坏,依然可以转移到读取其他完好的副本,并向 NameNode 汇报该文件 block 损坏,后续处理由 NameNode 通知 DataNode 删除损坏文件 block,并根据完好的副本来复制一份新的文件 block 副本。