基于文件大小的块和映射器

Blocks and Mappers based on file size

假设我有 3 个文件要存储在 HDFS 中并希望通过 MapReduce 读取它们。

因此,HDFS 位置 /omega/usecase/input 中有 3 个文件,如 file1.txt、file2.txt、file3.txt

这 3 个文件的大小是 file1.txt(64MB),file2.txt(32MB),file3.txt(1MB)

还假设默认块大小为 64MB,复制因子为 3

我想知道这 3 个文件有多少个块,如果我编写一个读取输入目录的 MapReduce 程序,将执行多少个映射器 /omega/usecase/input

HDFS 中将有 3 个块(每个文件一个)。

这些块中的每一个都将被复制到三台不同的机器上。所以它们将大约占据所有文件大小的 3 倍 = 3 * (64 + 32 + 1) MB.

当你执行M/R作业时,默认会有3个映射器(每个块一个)。

每个文件3个块(块只是一个逻辑分隔)。

三个映射器每个块处理一个。