整理总结 --- HDFS 读写过程

本文详细介绍了HDFS的读写过程。在写文件时,客户端先将数据缓存,达到block大小时请求NameNode分配block,然后直接与DataNode通信进行数据存储。读文件时,客户端首先获取block的locations,通过DFSInputStream选择最近的DataNode进行数据读取,如果出现异常则切换到其他可用节点。HDFS通过DataNode集群支持大量并发访问,适合顺序读取,不适合高并发随机读写。
摘要由CSDN通过智能技术生成

客户端:负责发起或提交读写请求,  写文件时,会拆分文件

namenode:HDFS的核心负责全局协调,做任何事都要向这里汇报,和把控所有的请求。

datanode:数量不定,负责数据的 存储。

数据存储: staging 
HDFS client上传数据到HDFS时,首先,在本地缓存数据,当数据达到一个block大小时。请求NameNode分配一个block。 NameNode会把block所在的DataNode的地址告诉HDFS client。 HDFS client会直接和DataNode通信,把数据写到DataNode节点一个block文件里。拆分文件

数据存储:读文件操作

1.首先调用FileSystem对象的open方法,事实上是一个DistributedFileSystem的实例。

2.DistributedFileSystem通过rpc获得文件的第一批block的locations,同一个block依照反复数会返回多个locations,这些locations依照hadoop拓扑结构排序,距离client近的排在前面。

3.前两步会返回一个FSDataInputStream对象,该对象会被封装DFSInputStream对象,DFSInputStream能够方便的管理datanode和namenode数据流。client调用read方法。DFSInputStream最会找出离client近期的d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值