数据写入流程,数据读取流程

理解客户端在HDFS上读、写数据的流程

数据写入流程

1. 客户端向NameNode发起请求

2. NameNode审核权限、剩余空间后,满足条件允许写入,并告知客户端写入的DataNode地址

3. 客户端向指定的DataNode发送数据包

4. 被写入数据的DataNode同时完成数据副本的复制工作,将其接收的数据分发给其它DataNode

5. 如上图,DataNode1复制给DataNode2,然后基于DataNode2复制给Datanode3和DataNode4

6. 写入完成客户端通知NameNode,NameNode做元数据记录工作

关键信息点:

NameNode不负责数据写入,只负责元数据记录和权限审批

客户端直接向1台DataNode写数据,这个DataNode一般是离客户端最近(网络距离)的那一个

数据块副本的复制工作,由DataNode之间自行完成(构建一个PipLine,按顺序复制分发,如图1给2, 2给3和4)

 数据读取流程

 

 1、客户端向NameNode申请读取某文件

2、 NameNode判断客户端权限等细节后,允许读取,并返回此文件的block列表

3、客户端拿到block列表后自行寻找DataNode读取即可

 关键信息点:

 1、数据同样不通过NameNode提供

2、NameNode提供的block列表,会基于网络距离计算尽量提供离客户端最近的,这是因为1个block有3份,会尽量找离客户端最近的那一份让其读取

总结 

 1、对于客户端读取HDFS数据的流程中,一定要知道 不论读、还是写,NameNode都不经手数据,均是客户端和DataNode直接通讯 不然对NameNode压力太大

2、写入和读取的流程,简单来说就是: NameNode做授权判断(是否能写、是否能读) 客户端直连DataNode进行写入(由DataNode自己完成副本复制)、客户端直连DataNode进行block读取 写入,客户端会被分配找离自己最近的DataNode写数据 读取,客户端拿到的block列表,会是网络距离最近的一份

3、网络距离 最近的距离就是在同一台机器 其次就是同一个局域网(交换机) 再其次就是跨越交换机 再其次就是跨越数据中心 HDFS内置网络距离计算算法,可以通过IP地址、路由表来推断网络距离

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小智学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值