哪些场景我们不给文件分配块?

In which scenarios we do not allocate blocks to files?

HDFS Quota Guide 对 Space 配额的说明如下。哪些场景不给文件分配块?

A quota of zero still permits files to be created, but no blocks can be added to the files.

HDFS 中的文件类似于更典型的文件系统中的 INode。它可能包含也可能不包含数据,并且只有在将数据添加到文件时才会创建块。例如,在以下代码段中,没有创建任何块,因为没有向文件添加数据:

FileSystem fs = ...
Path p = ...
fs.create(p).close();

而在下面,创建了一个块:

FileSystem fs = ...
Path p = ...
try (FSDataOutputStream out = fs.create(p)) {
    out.write(42);
}