FsDataOutputStream hflush 与 hsync 方法的区别是什么?

Posted PeersLee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FsDataOutputStream hflush 与 hsync 方法的区别是什么?相关的知识,希望对你有一定的参考价值。

原理:

client:

client --create--> namenode -> block -> packet -> DataStreamer -> datanode --ack--> client --complete--> namenode

org.apache.hadoop.hdfs.DFSOutputStream#hflush

org.apache.hadoop.hdfs.DFSOutputStream#hsync

org.apache.hadoop.hdfs.DataStreamer#run

datanode:

org.apache.hadoop.hdfs.server.datanode.DataXceiver#writeBlock

org.apache.hadoop.hdfs.server.datanode.BlockReceiver#flushOrSync

结论:

hflush:

保证 client 端数据到 datanode 端

hsync:

保证 client 端数据到 datanode 端的磁盘

以上是关于FsDataOutputStream hflush 与 hsync 方法的区别是什么?的主要内容,如果未能解决你的问题,请参考以下文章

FsDataOutputStream hflush 与 hsync 方法的区别是什么?

FsDataOutputStream hflush 与 hsync 方法的区别是什么?

hdfs

HDFS读写流程

HDFS读写分析

Hadoop基础原理