Client与DataNode流程分析
1.写文件流程
1) Client执行create方法,调用NameNode的create方法,同时在Client端启动datastream线程;
2) Client调用write方法,write不断地写入字节,写入字节的时候,以chunk大小作为生成校验和的单位;当写的字节数量达到一个包大小,就将这些字节封装成一个包,并加入dataqueue队列;
3) datastream线程读取dataqueue队列,如果读取到包数据,则首先判断是否需要创建块文件,如果需要,则需要有如下步骤:
a) 创建与DataNode的socket连接,DataNode接受到创建连接的请求,就初始化一个dataxceiver线程对象;
b) Client发送块头信息到DataNode;
c) DataNode接受到该头信息后,读取操作码,根据操作码调用方法writeBlock