hdfs文件何时可见

dauxcl2d  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(744)

假设默认的hadoop设置,如果我将一个128mb大小的文件写入hdfs。客户端需要向hdfs写入2个块。所以我的问题是
当第一个数据块被写入hdfs时,文件是否可以被人读取,或者它必须等待第二个数据块也被写入?
第二种情况是64 mb的文件大小,
2有人能读取当前写入hdfs的块吗?或者某人必须等待写入完成。

oaxa6hgo

oaxa6hgo1#

通常,当您写入hdfs时,一旦写入的数据超过一个块的值,第一个块将对新的读卡器可见。对于后续的块也是如此。总是当前块被写入,而其他读卡器不可见。但是,可以使用fsdataoutputstream.sync()强制将所有缓冲区同步到数据节点。sync()返回成功后,写入该点的数据将保证对所有新读卡器可见。

ttisahbt

ttisahbt2#

hdfs以块的形式思考。
所以,如果你的文件是由两个块组成的,而你的一个块被写了,你就可以读这个块了。但是,因为它只是文件的一个块,而不是整个文件,所以您必须在 dfs.data.dir 使用 hadoop dfs -text 去读它。或者你可以去 namenode UI 去读它。
对于第二个问题-不,您不能读取当前正在编写的块。读者看不见。

相关问题