我的Hadoop程序的输入是一组小文件(10个文件,每个大小为60MB),我运行100个映射器。我假设每个映射器的输入数据仅来自一个文件。也就是说,没有映射器,其输入数据跨越两个(或更多)文件。这是正确的假设吗?
答案 0 :(得分:2)
是。你是对的。您还可以使用CombineFileInputFormat在单个映射器调用中访问多个文件中的内容。
顺便说一句,您可以查看映射器任务ID,该ID由映射器读取的文件名(以及其他内容)组成。
答案 1 :(得分:1)
我的Hadoop程序的输入是一组小文件(10个文件,每个大小为60MB),我运行100个映射器。
无法明确控制地图集的总数。映射器的总数等于块的数量。所以,不确定I run 100 mappers
是什么意思。
我假设每个映射器的输入数据只来自一个文件。
映射器处理数据块,文件可以根据数据大小分成1或1+块。
也就是说,没有映射器,其输入数据跨越两个(或更多)文件。
通过使用CombineFileInputFormat,单个映射器将能够处理多个文件。