hadoop中的hdfs如何利用数据节点中块的可用空间?

hadoop中的hdfs如何利用数据节点中块的可用空间?,hadoop,hdfs,block,Hadoop,Hdfs,Block,我的文件大小为10MB,我将其存储在hadoop中,但hdfs中的默认块大小为64MB。因此,我的文件使用了64MB中的10MB。HDFS将如何利用同一块中剩余的54 MB可用空间?从逻辑上讲,如果文件小于块大小,HDFS会将该特定文件的块大小减小到文件大小。因此,HDFS将仅使用10MB存储10MB的小文件,不会浪费54MB或将其留空 这里详细描述了HDF中的小文件:剩余的54MB将用于其他文件。这就是它的工作原理,假设您执行一个put或copyFromLocal,包含两个小文件,每个文件大小

我的文件大小为10MB,我将其存储在hadoop中,但hdfs中的默认块大小为64MB。因此,我的文件使用了64MB中的10MB。HDFS将如何利用同一块中剩余的54 MB可用空间?

从逻辑上讲,如果文件小于块大小,HDFS会将该特定文件的块大小减小到文件大小。因此,HDFS将仅使用10MB存储10MB的小文件,不会浪费54MB或将其留空


这里详细描述了HDF中的小文件:

剩余的54MB将用于其他文件。这就是它的工作原理,假设您执行一个put或copyFromLocal,包含两个小文件,每个文件大小为20MB,块大小为64MB。现在,HDFS计算文件系统(不可用块)中的可用空间(假设之前您在64MB块中保存了一个10MB的文件,它还包括剩余的54MB),并根据块给出报告。由于您有2个文件,复制系数为3,因此即使您的文件大小小于块大小,也会为您的文件分配总共6个块。如果集群没有6个块(6*64MB),则put进程将失败。由于报告是按空间而不是按块获取的,因此块永远不会用完。以块为单位测量文件的唯一时间是在块分配时

更多信息请阅读本文