在哪些情况下我们不会为文件分配块?

Posted

技术标签:

【中文标题】在哪些情况下我们不会为文件分配块?【英文标题】:In which scenarios we do not allocate blocks to files? 【发布时间】:2018-11-06 19:50:55 【问题描述】:

HDFS Quota Guide 表示空间配额如下。哪些场景我们不给文件分配块?

零配额仍允许创建文件,但不能创建块 被添加到文件中。

【问题讨论】:

猜测,但hdfs dfs -touchz 只影响Namenode。不分配块 【参考方案1】:

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

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

而在下文中,创建了一个块:

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

【讨论】:

以上是关于在哪些情况下我们不会为文件分配块?的主要内容,如果未能解决你的问题,请参考以下文章

查看 Linux 中文件打开情况(lsof)

查看 Linux 中文件打开情况(lsof)

centos rm命令恢复删除的文件

哪些值可以分配给 `constexpr` 引用?

转指定文件指定行指定代码块不使用 ESLint 语法检查

操作系统王道考研 p50-51 文件的物理结构(文件分配方式)