我运行的是单节点hadoop环境。当我跑$hadoop fsck /user/root/mydatadir -block
,我真的得到了各地的输出混淆这给:文件数与HDFS中的块数
Status: HEALTHY
Total size: 998562090 B
Total dirs: 1
Total files: 50 (Files currently being written: 1)
Total blocks (validated): 36 (avg. block size 27737835 B) (Total open file blocks (not validated): 1)
Minimally replicated blocks: 36 (100.0 %)
Over-replicated blocks: 0 (0.0 %)
Under-replicated blocks: 36 (100.0 %)
Mis-replicated blocks: 0 (0.0 %)
Default replication factor: 2
Average block replication: 1.0
Corrupt blocks: 0
Missing replicas: 72 (200.0 %)
Number of data-nodes: 1
Number of racks: 1
它说我已经写50个文件,但它仅使用36块(我不理会当前正在写入的文件)。
根据我的理解,尽管每个文件的大小小于HDFS块大小(对于我来说它是64MB,默认大小),但每个文件使用至少1个块.i.e,我预计50个文件有50个块。我的理解有什么问题?
这样,多个文件可以在一个块中。这是对的吗? –
我更新了答案,以澄清 – javadba
在我的情况下,我没有使用任何特殊格式。我只写了一些文件,它们可能比HDFS块的大小要小。 –