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

需要明确单节点集群中Hadoop块的大小,hadoop,size,block,hdfs,Hadoop,Size,Block,Hdfs,我有一个单节点Hadoop集群版本-2.x。我设置的块大小是64MB。我有一个大小为84 MB的HDFS输入文件。现在,当我运行MR作业时,我看到有两个拆分,有效值为84MB/64MB~2,因此有两个拆分 但当我运行命令“hadoopfsck-blocks”查看块的详细信息时,我看到了这一点 Total size: 90984182 B Total dirs: 16 Total files: 7 Total symlinks: 0 Total blo

我有一个单节点Hadoop集群版本-2.x。我设置的块大小是64MB。我有一个大小为84 MB的HDFS输入文件。现在,当我运行MR作业时,我看到有两个拆分,有效值为84MB/64MB~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。

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

最大块大小是您指定的64MB,但您必须非常幸运,您的平均块大小等于最大块大小

考虑您提到的一个文件:
1个文件,84 MB
84MB/64MB=2个块
84MB/2块=平均42 MB/块

你必须有一些其他的文件使平均值下降更多

除了块对namenode的内存需求以及如果块大小太大(显然不是单个节点集群中的问题)可能会失去并行性之外,平均块大小小于最大值不会有太多问题

最大块大小为64MB并不意味着每个块都会占用磁盘上的64MB。

可能的重复