关于HDFS

本文探讨了HDFS的一个关键特性,即不支持多个用户同时写入和任意修改文件,强调了其在分布式存储系统中的设计理念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HDFS
1.什么是HDFS
HDFS: Hadoop分布式文件系统(Distributed File System) - HDFS (Hadoop Distributed File System)
2.HDFS的来源
源于Google 三大论文的GFS论文,HDFS是GFS的克隆版
3.HDFS的设计目标
1.自动快速检测应对硬件错误(硬件错误为常态)
2.流式处理访问数据()
3.移动计算比移动数据本身更划算  (不需要来回拷数据,直接拷jar包)
4.简单一致性模型 (可读,写,复制等不可修改)
5.异构平台可移植 (可使用别的软件替换重写一些模块)扩展性比较好


4.HDFS的特点
优点:
(一)高可靠性:Hadoop按位存储和处理数据的能力值得人们信赖;
(二)高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
(三)高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
(四)高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。


缺点:
(一)不适合低延迟数据访问。
(二)无法高效存储大量小文件。

(三)不支持多用户写入及任意修改文件。


5.HDF三个组件(服务)组成
1.namenode 名字节点(中心节点)单一节点,存储数据的元数据,类似于经理不干活
2.secondary namenode 辅助节点 同步元数据(镜像文件Fsimage)和日志文件(FsEdits)  类似于秘书
3.datanode 数据节点  存储数据和数据校验和csc32  最小存储单位:块(默认128M)




6.HDFS写的工作原理
1.客户端Client发出请求打开DistributedFilesystem类
2.DistributedFilesystem类中crete 方法请求namenode 创建一个空间(如果已存在覆盖,如果不存在上传)
3.写流程,FSDataOutputStream类创建对象
4.FSDataoutputStream开始写入根据客户端的入库条
5.datanode开始写入数据 写完后标记写入ack队列
6.客户端close  FSDataoutputStream
7.HDFS读取的工作原理
1.客户端Client发出请求打开DistributedFilesystem类
2.DistributedFilesystem类中getblockloction方法请求namenode 得到数据存放地址
3.读流程,FSDataInputStream类创建对象
4.客户端根据地址最近的副本FSDataInputStream读取(三个副本一个解决安全问题和优化问题)
6.客户端close  FSDataInputStream
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值