【发布时间】:2011-07-05 06:26:41
【问题描述】:
我目前正在编写分布式应用程序,它在 Hadoop MapReduce 的帮助下解析 Pdf 文件。 MapReduce 作业的输入是数千个 Pdf 文件(大部分范围从 100KB 到 ~2MB),输出是一组已解析的文本文件。
出于测试目的,最初我使用了 Tom White 的 Hadoop 中提供的WholeFileInputFormat。 The Definitive Guide 书,提供单个文件到单个地图。这适用于少量输入文件,但是,由于显而易见的原因,它不适用于数千个文件。需要大约一秒钟才能完成的任务的单一地图效率低下。
所以,我想做的是将几个 Pdf 文件提交到一个 Map 中(例如,将几个文件组合成一个块,其 HDFS 块大小约为 64MB)。我发现CombineFileInputFormat 对我的情况很有用。但是我不知道如何扩展该抽象类,以便我可以将每个文件及其文件名作为单个键值记录处理。
感谢任何帮助。谢谢!
【问题讨论】: