HDFS的写流程:
1.客户端启动distributed FileSystem向namenode发送写数据请求
2.namenode向distributed FileSystem响应可以写
3.distributed FileSystem向namenode请求发送block
4.namenode向distributed FileSystem发送dn1、dn2、dn3的地址
5.FileDataOutputStream向最近距离的dn1请求发送block的传输通道,同时dn1向dn2发送请求传输通道,dn2向dn3发送请求传输通道
6.dn1、dn2、dn3响应成功
7.FileDataOutputStream向dn1传输数据packet,dn1传输到dn2,dn2传输到dn3
注意:dn1与客户端在一台机架上,dn2与dn3在一台机架上,并且dn2和dn3是dn1的remote机架(即dn2和dn3与dn1不在同一台机架)
因为要考虑到传输速率和数据可靠性
HDFS的读流程:
1.客户端启动distributed FileSystem向namenode请求下载数据
2.namenode向distributed FileSystem发送对应数据的位置
3.FileDataInputStream向dn1请求下载blk_1
4.dn1向FileDataInputStream传输数据
注意:下载blk1和blk2数据是串行,即blk1完成之后才开始blk2
同时FileDataInputStream读取数据要遵循 1.距离最近2.负载均衡
HDFS的读写流程
最新推荐文章于 2024-06-24 22:53:05 发布