天天看点

客户端向hdfs读写数据流程写数据可以点击查看大图

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/79910748

写数据

可以点击查看大图

客户端上传文件会被分为128M一块上传 

首先客户端像namenode请求上传,namenode响应可以上传。然后客户端像namenode发起rpc请求上传第一个block(0-128M),请返回datanode,

客户端拿到namenode地址比如3个副本会有3台 分别为 dn1  dn2 dn3

客户端向dn1建立channel,  dn1 向dn2建立通道 在nio的bytebuf ,dn2向dn3建立通道在nio的bytebuf

dn3响应dn2 ,dn2 响应dn1 ,dn1响应给客户端 ,

客户端通过nio传送数据到 dn1同时 dn1也传给dn2 ,dn2也传给dn3

只要dn1上传成功就成功后面namenode会去维护,如果dn1也失败就返回失败重传。

客户端传送给 dn1 单位为package 64k

以chunk为校验单位 521byte

读数据

找namenode请求下载