HDFS写流程(微观层面)

发布时间 2023-09-06 15:38:41作者: cloudya

解释:

  步骤1:客户端首先将数据加载到内存中,变成很多的package大小默认为64K,package由两个部分组成,header里面包含了很多的位置信息,

例如属于哪个block,在block什么位置,data部分是存储数据

  步骤2:通过FSDateOutputStream将block运输到数据管道,同时会同步一份数据给确认队列

  步骤3:数据管道的package会进入DateNode中,在传输数据之前涉及到的DateNode会产生一个pipline管道,数据传输到一个DateNode上会得到一个状态反馈

如果数据,

  步骤4:如果第一个DateNode接收到最后一个DateNode的ack状态,那么数据表示传输成功,数据传输成功后会关闭管道,同时也会将FSDateOutputsyream,

如果数据传输发生错误,出现断电,这时没完全传输的成功的package会将传输到的DateNode上的数据进行删除,并将确认队列的数据同步一份给数据队列,重新传输