0

我的 Hadoop 程序的输入是一组小文件(10 个文件,每个大小为 60MB),我运行 100 个映射器。我假设每个映射器的输入数据仅来自一个文件。也就是说,不存在输入数据跨越两个(或更多)文件的映射器。这是一个正确的假设吗?

4

2 回答 2

2

是的。你是对的。您还可以使用 CombineFileInputFormat 在单个映射器调用中访问多个文件的内容。

顺便说一句,您可以查看映射器任务 ID,它由映射器正在读取的文件的名称(以及其他内容)组成。

于 2013-10-28T18:34:07.580 回答
1

我的 Hadoop 程序的输入是一组小文件(10 个文件,每个大小为 60MB),我运行 100 个映射器。

映射器的总数无法明确控制。映射器的总数等于块的数量。所以,不确定I run 100 mappers的意思。

我假设每个映射器的输入数据仅来自一个文件。

映射器处理一个数据块,一个文件可以根据数据的大小分成 1 个或 1+ 个块。

也就是说,不存在输入数据跨越两个(或更多)文件的映射器。

通过使用CombineFileInputFormat,单个映射器将能够处理多个文件。

于 2013-10-28T18:56:46.087 回答