0
点赞
收藏
分享

微信扫一扫

HDFS 在写文件的过程中能否 ls 到正在写的文件?

千白莫 2022-10-28 阅读 195


原理:

HDFS 在写文件的过程中能否 ls 到正在写的文件?_hadoop

上传本地文件到 HDFS 过程:

20G May 25 14:56 xx.tar
hdfs dfs -put xx.tar /data/

hdfs dfs -ls /data/

/data/xx.tar._COPYING_

通过 java api 写文件:

HDFS 在写文件的过程中能否 ls 到正在写的文件?_hadoop_02

org.apache.hadoop.fs.FileSystem#create 实际上已把元数据写到 editlog 了; -ls 就能看到一个 size = 0 的文件

org.apache.hadoop.fs.FSDataOutputStream.write & flush(close) 之后就可以 cat 到已写的内容,并且文件会有 size 大小

结论:

在 client protocol create 的时候 nn 就已经在 meta 数据中记录了创建的文件,所以在写的过程中肯定可以看到文件,但至于能不能看到当前的内容取决于 flush 的调用

举报

相关推荐

0 条评论