HDFS读写流程
 读取流程
 1、客户端请求上传文件
 2、namenode检查是否存在,可以上传,
 3、客户端请求第一个block块上传到datanode
 4、namenode返回3个datanode节点,d1,d2,d3
 5、客户端请求dn1调用数据,d1收到请求会继续调用d2,d2调用d3,将通信管道建立完成
 6、随即d1,d2,d3逐级应答
 7、客户端开始往d1上传第一个block
 (先从磁盘读取数据放到一个本地内存缓存)
 以packet单位 (128MB)
 d1收到第一个packet传到d2,d2再传到d3上
 d1每传一个packet会放入一个应答队列等待应答
 8、当一个block传输完成之后,
 客户端再次请求namenode上传到第二个
 写入流程
 1、客户端向namenode发送请求写入数据,
 2、namenode通过secondarynamenode存储的元数据,去定位datanode
 3、挑选一台datanode(就近原则,然后随机)服务器,请求读取数据。
 4、数据读取完,发送给客户端,以packet(128MB)的形式存储
 5、以本地缓存的方式,再写入目标文件

 
 










