Hadoop之HDFS分布式文件系统

HDFS简介

Hadoop Distributed File System (HDFS): HDFS 是 Hadoop 的分布式文件系统,它设计用于存储大量数据,并提供 高吞吐率的数据访问,通过将数据分块存储在多个节点上,实现数据的冗余存储和容错。

HDFS重要概念

HDFS 通过统一的命名空间目录树来定位文件; 另外,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色(分布式本质是拆分,各司其职)。

  • 典型的Master/Slave架构

HDFS集群往往是一个NameNode(HA架构会有两个NameNode,联邦机制)+多个DataNode组成。

  • 分块存储(block机制)

HDFS 中的文件在物理上是分块存储(block)的,块的大小可以通过配置参数来规定。

  • 命名空间(NameSpace)

HDFS 支持传统的层次型文件组织结构。用户或者应用程序可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似:用户可以创建、删除、移动。

Namenode 负责维护文件系统的名字空间,任何对文件系统名字空间或属性的修改都将被

Namenode 记录下来。

  • NameNode元数据管理

NameNode负责存储文件的元数据,比如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。

  • DataNode数据存储

DataNode是HDFS的工作节点,负责存储实际的用户数据。每个DataNode都会向NameNode注册自己的存储能力,并定期报告自己的状态和已存储的数据块信息。

  • 副本机制

HDFS 中的文件在物理上是分块存储(block)的,每个block通过副本机制来保证其高可用性。

HDFS会自动维护数据块的副本数量,确保数据的高可靠性。

如果某个副本丢失,NameNode会根据当前的网络状况和数据块的副本分布,选择一个合适的DataNode来创建新的副本。

如果某个DataNode失效,NameNode会重新分配其存储的数据块到其他健康的DataNode上。

  • 数据一致性

HDFS使用Write-Once-Read-Many(WORM)模型,确保数据一旦被写入就不能被修改。

在写操作中,NameNode确保所有的副本在提交前都已经成功创建,从而保证数据的一致性。

在读操作中,客户端可以从任何一个副本读取数据,但NameNode会确保客户端获取的是最新的数据版本。

HDFS架构

NameNode(nn):存储文件的元数据,比如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。

SecondaryNameNode(2nn):辅助NameNode更好的工作,用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据快照。

DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值