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

时间:2014-07-20 09:14:51

标签: hadoop size block hdfs

我有一个Node Hadoop集群版本 - 2.x.我设置的块大小是64 MB。我有一个大小为84 MB的HDFS输入文件。现在,当我运行MR作业时,我看到有2个分割有效为84 MB / 64 MB~2,因此有2个分割。

但是当我运行命令" hadoop fsck -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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

除了块名称节点上的内存要求以及块大小过高时可能会失去并行性(显然单个节点集群中不存在问题),不会出现太多问题平均块大小小于最大值

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

答案 1 :(得分:0)

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