HDFS学习之路三

HDFS读写流程:

HDFS读取数据的流程:

  1. 客户端向namenode发送读取数据请求

  2. 那namenode检查客户端权限, 根据客户端请求的数据信息,找到对应数据存在的datanode, 形成一个datanode列表

  3. 返回一个block的datanode列表

  4. 客户端和datanode建立pipeline, 就近原则(根据HDFS的网络拓扑, 减少磁盘IO压力)

  5. 客户端开始读取数据, 读取数据的单位是 packet (64K)

  6. 读取完毕,客户端通知namenode, 并关闭数据流

HDFS的写流程:

  1. 客户端向namenode发送写入数据请求

  2. namenode检查权限, 返回数据流对象

  3. namenode找到能够写入的datanode(正常的datanode) , 返回给客户端

  4. 客户端请求上传blk1,(整体数据被切分为n块)

  5. 客户端与datanode建立pipeline , datanode之间也建立了pipeline

  6. 开始传递数据, 单位为 packet 

  7. 各个datanode将数据缓存到本节点

  8. 重复上传数据块,直至上传完毕, 最后datanode发送应带给客户端

  9. 客户端通知namenode关闭数据流

学习阶段, 有不足之处请多指教!!!

原文地址:https://www.cnblogs.com/joey-413/p/13958377.html