需要明确单节点集群中hadoop块的大小吗

kpbpu008  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(350)

我有一个单节点hadoop集群版本-2.x。我设置的块大小是64 mb。我有一个大小为84MB的hdfs输入文件。现在,当我运行mr作业时,我看到有两个有效的分割,分别是84mb/64mb~2和2个分割。
但当我运行命令“hadoopfsck-blocks”查看块的详细信息时,我看到了这个。

Total size:    90984182 B
Total dirs:    16
Total files:   7
Total symlinks:                0
Total blocks (validated):      7 (avg. block size 12997740 B)
Minimally replicated blocks:   7 (100.0 %)
Over-replicated blocks:        0 (0.0 %)
Under-replicated blocks:       0 (0.0 %)
Mis-replicated blocks:         0 (0.0 %)
Default replication factor:    1
Average block replication:     1.0
Corrupt blocks:                0
Missing replicas:              0 (0.0 %)
Number of data-nodes:          1
Number of racks:               1

如您所见,平均块大小接近13MB。为什么会这样?理想情况下,块大小应该是64 mb?

tktrz96b

tktrz96b1#

最大的块大小是64mb,但是如果你的平均块大小等于最大的块大小,那就太幸运了。
考虑一下你提到的一个文件:
1个文件,84 mb
84mb/64mb=2块
84mb/2块=平均42 mb/块
你一定有其他文件使平均值下降得更多。
除了namenode对块的内存需求以及如果块大小太大(显然不是单节点集群的问题)可能会丢失并行性之外,平均块大小小于最大值不会有太多问题。
最大块大小为64mb并不意味着每个块都占用磁盘上的64mb。

rdlzhqv9

rdlzhqv92#

配置块大小时,可以设置块的最大大小。您的文件不太可能是块大小的精确倍数,因此许多块将小于配置的块大小。

相关问题