Hadoop 2.7.4数据块传输后快速fsync操作以减少数据丢失风险.pdfVIP

  • 3
  • 0
  • 约1.26千字
  • 约 1页
  • 2026-06-12 发布于北京
  • 举报

Hadoop 2.7.4数据块传输后快速fsync操作以减少数据丢失风险.pdf

在接收完毕一个block,仅仅flush+rename,有可能机器突然宕机,导致osbuffer里

的数据丢失了,此时还没fsync到磁盘文件上。hadoop2.7.4里面,做了一个修复,我带着

动手来写了代码

如果识别到一个block传输完毕了,在finalizeBock的操作中,就可以将这个block磁盘

文件从rbw目录下挪动到finalized目录下去,挪动完了以后,直接基于javaNIO的API,

FileChannel,对rbw目录和finazlied目录都做一个fsync操作

将这两个目录中的数据,都及时的进行fsync,避免说刚刚接收完毕了一个block,此时机器

突然宕机呢?没及时fsync,就会导致block数据丢失。此时我们尽最快的速度执行了fsync

的操作,就可以尽可能避免机器宕机导致的block数据丢失

也就是哪怕你现在已经尽快的在fsync操作了,但是只要你还没fsync的时候,机器宕机了,

还是可能会导致block数据的丢失。fsync,尽可能快的对磁盘目录进行fsync,缩短执行fsync

操作的等待周期

尽可能的将数据丢失的可能性降低到了最低

文档评论(0)

1亿VIP精品文档

相关文档