HDFS

1. HDFS(Hadoop Distributed File System)

HDFS是Hadoop项目的和核心子项目,是分布式计算中数据存储管理的基础,基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。具有高容错、高可靠、高扩展性、高获得率、高吞吐率等特征。

2.HDFS体系架构

2.1 HDFS是什么?

HDFS是一个主从(Master/Slave)体系结构:master和slave都工作。还有一种主备体系结构,主工作,备用不工作。从用户角度来看,他就像传统的文件系统一样,可以通过目录路径对文件执行CRUD(Create、Read、Update、Delete)操作。
由于分布式存储的性质, Hdfs的组成如下:







HDFS

NameNode

DateNode

Secondary NameNode


面向文件包含:文件数据(data)以及元数据(metadata属性)。

2.2 各组成介绍

  • NmaeNode:管理文件系统的元数据(描述数据的数据),例如:文件名称、文件目录结构、文件属性(生成时间、副本数、文件权限、文件大小等)以及文件的块列表和块所在的DataNode等。并维护了一个层次型的文件目录树。
  • DataNode:存储实际的数据(block块),并提供block的读写。DataNode响应来自HDFS客户机的读写请求同时它们还响应来自NameNode的创建,删除和复制块的命令。
    NameNode依赖来自每个DataNode的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode可以根据这个报告验证块映射和其他文件系统元数据。如果DataNode不能发送心跳消息,NameNode将采用修复措施。重新复制在该节点上丢失的块。
  • 文件块(block):最基本的存储单位。对于文件内容而言,一个文件的长度大小size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个称一个Block。HDFS默认BIock大小是128MB。不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据存储空间。

2.3 各部分的运行

客户端Client通过NameNode和DataNode的交互访问文件系统。客户端Client联系NameNode获取文件的元数据,而真正的文件I/O操作是直接和DataNode进行交互的,以获取block数据.

2.4 HDFS Architecture

2.5 HDFS的读写流程

hadoop hdfs 可视化 hadoop项目结构中,hdfs指的是什么_big data