版权声明:本文为博主原创文章,未经博主允许不得转载。 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请求下载