HDFS概述

本文介绍了HDFS,Hadoop的分布式文件系统,详细讲解了HDFS的块、通信协议和存储原理,包括块大小、名称节点、数据节点的角色以及HDFS的优缺点。HDFS设计目标是兼容廉价硬件,支持流数据读写,但不适合低延迟数据访问和存储大量小文件。文章还探讨了其体系结构的局限性和数据冗余与恢复策略。
摘要由CSDN通过智能技术生成

想学习大数据方面的知识就避不开hadoop,终于下决心补充一下知识的盲区,听了厦门大学林子雨老师的大数据原理与应用课程(确实是好课,感谢老师!),记录一下自己学习到了HDFS相关知识。

HDFS是hadoop的核心设计之一,解决的是海量数据的存储问题。全程Hadoop Distribute File System,是一个分布式文件系统。
分布式文件呢,就是把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群。
总体上,HDFS要实现以下的目标:

  • 兼容廉价的硬件设备:目前分布式文件系统所采用的计算机集群,都是有普通硬件构成的,这就大大降低了硬件上的开销

  • 流数据读写:HDFS读取数据都是批量的,一次性读取全部或者说大部分的数据。

  • 大数据集。

  • 简单的文件模式:HDFS存储的文件都是简单模式的,一次写入多次读取,也就是说,不允许用户继续写入、修改文件。

  • 强大的跨平台兼容性。

HDFS特殊的设计,在实现上述优良特征的同时也使自身有一些应用的局限性,主要是:

  • 不适合低延迟数据访问:正如前面讲到的流数据读写,HDFS不满足实时性,不适合随机读取。

  • 无法高效存储大量小文件:后面会讲到HDFS的块,文件以块的形式存储,小文件的存储比较浪费资源

  • 不支持多用户写入及任意修改文件

下面将按以下目录介绍HDFS:

HDFS,全称为Hadoop Distributed File System,是一个分布式文件系统,特别适用于大规模数据处理。以下是关于HDFS架构的详细介绍: **一、HDFS概述** HDFS设计目标是提供高吞吐量的数据访问,适合于大量的批处理任务,而不是实时交互。它采用了主从(Master-Slave)架构,由NameNode作为全局命名空间管理者和DataNodes作为大量数据块的存储节点。 **二、HDFS存储体系结构** 1. **NameNode**: 主要负责元数据管理,如文件系统的目录树结构、文件属性和块到DataNode映射等信息。它是一台中心化的服务器,对整个集群进行全局状态维护。 2. **DataNodes**: 存储实际的数据块。每个DataNode都有自己的内存缓存,并通过心跳报文向NameNode报告存活状态和块的位置信息。 **三、HDFS文件写流程** 1. **客户端发起写操作**: 客户端首先创建一个新的文件,这会生成一个元数据块并记录在NameNode中。 2. **分块与复制**: 文件被切分成多个固定大小的数据块(默认64MB),然后客户端随机选择若干个DataNodes将这些块存储起来。通常会选择三个副本,保证冗余和容错性。 3. **数据写入**: 数据块被逐个写入DataNodes,客户端并不直接控制具体的DataNode,而是通过NameNode获取写入地址。 4. **确认写入**: DataNodes完成写入后,会更新自身的块列表并将此消息发送给NameNode,NameNode确认所有副本都已写入后,返回成功信号给客户端。 5. **最终持久化**: NameNode定期同步各个DataNode的块位置信息,当大部分副本存活时,这个文件被认为持久化了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值