我有一个MapReduce任务,它有以下输入文件
File1    value1
File1    value2
File2    value3
File2    value4映射器将访问文件名并搜索其中的特定值。
问:我希望有一种优化技术来优化这些文件的磁盘访问。我需要将相同的文件id分配给同一个映射器。因此,我可以确保一次只有一个任务可以访问该文件。
示例:必填
Mapper 1: File1 (value1), File1 (value2)
Mapper 2: File2 (value3), File2 (value4)不需要:
Mapper 1: File1 (value1), File2 (value3)
Mapper 2: File1 (value2), File2 (value4)有什么帮助吗?
发布于 2012-07-23 21:47:45
有了2个文件的图片,你肯定会有至少2个地图和默认的TextInputFormat作为hadoop的输入格式。
您所要做的就是创建一个自定义的扩展TextInputFormat的InputFormat,并覆盖isSplittable()方法以返回false。在此场景中,一个文件将由一个映射器完全处理,而下一个文件将由另一个映射器完全处理。
https://stackoverflow.com/questions/11603338
复制相似问题