HDFS写数据流程
Client按照默认block大小切割(如200M)。200的数据会被切割成128 72两个个block块
然后按下图开始写。
第一个Block走全流程,后面的block之前从addBlock()开始
1.客户端通过Distributed FileSystem模块向NameNode
请求上传文件,NameNode
检查目标文件是否已存在,父目录是否存在
2.NameNode
返回是否可以上传
3.客户端请求第一个 Block上传到哪几个DataNode
服务器上(就近原则,离当前client近的优先)
4.NameNode
返回3个DataNode
节点,分别为dn1、dn2、dn3
5.数据切割,先按照chunk
和checksum
组成小包(512bytes+4bytes),然后塞入packet
(64KB)。
HDFS传输数据生成的crc文件实际上就是校验文件。
6.HDFS以packet
为单位传输文件。此时分两个流向:<