Hadoop的读写

写数据的流程:

1.首先客户端client创建一个Distributed Filesystem(分布式文件系统)像Nam7eNode请求上传文件。

2.NameNode检查目录树是否可以创建文件(检查权限-是否允许上传,检查目录结构-路径是否存在),当都通过时响应客户端,反馈信息可以上传。

3.客户端接收到可以上传文件的反馈后,向NameNode请求上传第一个Block,上传到那几个DataNode。

4.NameNode进行计算,选择副本存储点,第一个选择的是本地存储点,第二个选择其他机架的一个节点,第三个选择其他机架的另一个节点,并把这三个节点返回给客户端。

5.客户端收到三个节点的信息,创建输入流,向节点距离最近的一个节点,进行请求Block传输通道,最近的节点会向另外的节点进行请求建立通道,另外的节点会向第三个节点请求建立传输通道。

6.三个节点接收到请求建立传输通道后,回逐一进行传输反馈给客户端。

7.客户端开始向第一个节点上传第一个Block,(先从磁盘进行读取数据放到本地内存进行缓存),以pocket为单位,第一个节点接收到一个pocket后就会传给第二个节点,第二个节点传输给第三个节点,第一个节点每上传一个pocket就会挡在一个应答队列等待应答。

8.当一个block0传输完毕后,客户端再次请求NameNode上传第二个block服务器(重复执行3-7步)。​​​​​​​

读数据流程:

1.客户端通过DistributedFileSystem(分布式文件系统)请求下载文件,NameNode通过查询原数据,找到文件所在的NameNode地址,并返回地址给客户端。

2.客户端会根据节点的就近原则挑选一台DataNode服务器读取数据。

3.DataNode开始传输数据给客户端(从磁盘里面读取数据的输入流,以pocket为单位效验)。、

4.客户端以pocket为单位进行接收,先在本地缓存,然后写入目标文件。

5.关闭资源

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值