首页 > 代码库 > 浅谈Hadoop下HDFS文件系统

浅谈Hadoop下HDFS文件系统

Hadoop下HDFS文件系统

    在这里我们对Hadoop的基本概念,历史功能就不做过多的阐述,重点在对于他的文件系统做一些了解和阐述。

     HDFS(Hadoop distributed file system)是一个分布式文件系统。具有高容错性(fault-tolerant),使得他能够部署在低廉的硬件上。他可以提供高吞吐率来访问应用程序的数据。HDFS放宽了可移植操作系统接口的要求。这样就可以实现以流式的形式来访问文件系统的数据。

     HDFS的设计目标:

  1. 检测和快速回复硬件故障

  2. 流式的数据访问

  3. 简化一致性模型

  4. 通信协议 

    HDFS体系结构

wKioL1SFguTx4InKAAHqYhjabSc552.jpg

 HDFS的体系结构采用主从(Master/Slave)模型,一个HDFS集群是由一个NameNode和若干个DataNode组成,其中NameNode是主服务器,管理文件体统的命名空间和文件操作;DataNode管理存储的数据。HDFS允许用户以文件的形式来存储数据。从内部来看文件被分成了若干个数据块,而这若干个数据块存储在一组DataNode中。在NameNode的统一调度下课以对文件进行创建、删除和复制。(用户数据永远不会经过NameNode)

  Hadoop与分布式开发

 我们通常所说的分布式系统其实是分布式软件系统,即分布式处理的软件系统,包括

分布式操作系统

分布式程序设计语言及其编译(解释)系统

分布式文件系统

分布式数据库系统

Hadoop属于分布式软件系统中的文件系统中这一层它实现了分布式文件系统和部分分布式数据库的功能

  而区中HDFS能够实现数据在据算计集群组成的云上高效的存储和管理。

HDFS分布式系统和其他系统的类似特质:

  1. 对于整个集群有的那一的命名空间

  2. 具有数据的一致性、适合一次写入多次读写的模型,客户端在文件没有被成功创建之前,是无法看到文件的存在

  3. 文件会被分成多个问价块,每个文件被分配存储到数据节点上,而且会根据配置有复制文件块来保证数据的安全性。

接下来请根据上图参考学习

通过具体的操作来看HDFS对数据的管理

(1)文件写入

  • Client向NameNode发起文件写入的请求

  • NameNode根据文件大小和文件块的配置情况,返回给client他所管理的DataNode的信息

  • client将文件划分为多个Block,根据DataNode的地址信息,按顺序将其写入每一个DataNode块中

(2)文件读取

  • client向NameNode发起读取文件的请求

  • NameNode返回文件存储的DataNode信息

  • client读取文件信息

(3)文件块(Block)复制

  • NameNode发现部分文件的Block不符合最小复制数这一要求或部分DataNode失效

  • 通知DataNode相互复制Block

  • DataNode开始直接相互复制

HDFS在系统管理值得借鉴的功能

  1. 心跳检测

  2. 数据复制

  3. 数据校验

  4. 单个NameNode如果失败任务处理信息将会记录在本地文件系统和远端的文件系统中

  5. 数据的管道性写入

  6. 安全模式

HDFS就简单介绍到这  如果有不足的地方请多多包涵,该文档仅作学习参考。

本文出自 “圆圆圈圈点点” 博客,谢绝转载!

浅谈Hadoop下HDFS文件系统