【HDFS】DFSPacket中lastPacketInBlock字段的关键作用

2023-12-15 00:17:16

这篇文章介绍了DFSPacket对象的lastPacketInBlock字段相关的知识。
【HDFS Client】DFSPacket对象什么情况下是lastPacketInBlock?

本文继续深挖lastPacketInBlock这个字段在HDFS Client写数据时的重要作用。

可以这么说,如果这个lastPacketInBlock出问题的话,是会影响增量块汇报(IBR)的,继而导致Block Missing丢块的问题。

我们先给出结论,lastPacketInBlock的两个重要作用:
1、在客户端侧控制endBlock,结束一个block,进而向namenode新申请新的块。
2、在datanode侧,控制block的finalize。

一、DataNode侧的作用

因为last packet in block只是一个标记packet,并没有真实的数据。
所以,在datanode侧,如果发现当前receive的packet是lastPacketInBlock的话,就会看是否有sync标记,
如果需要sync block,则flushOrSync(true, seqno),把块给同步到磁盘上。

if (lastPacketInBlock || len 

文章来源:https://blog.csdn.net/yexiguafu/article/details/135005916
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。