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

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

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

  1. Total size: 90984182 B
  2. Total dirs: 16
  3. Total files: 7
  4. Total symlinks: 0
  5. Total blocks (validated): 7 (avg. block size 12997740 B)
  6. Minimally replicated blocks: 7 (100.0 %)
  7. Over-replicated blocks: 0 (0.0 %)
  8. Under-replicated blocks: 0 (0.0 %)
  9. Mis-replicated blocks: 0 (0.0 %)
  10. Default replication factor: 1
  11. Average block replication: 1.0
  12. Corrupt blocks: 0
  13. Missing replicas: 0 (0.0 %)
  14. Number of data-nodes: 1
  15. 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#

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

相关问题