【发布时间】:2014-11-24 14:15:54
【问题描述】:
我需要在使用 Java 的 mapreduce 程序中解析 PDF 文件。我正在使用 CDH 5.0.1 进行集群设置。我有一个由 FileInputFormat 扩展的自定义输入格式类,在该类中我重写了 getRecordReader 方法以返回自定义 RecordReader 的实例,并使用 isSplitable 方法防止文件不可拆分,如 SO answer 中所建议的那样。
现在的问题是,在当前的 CDH API getRecordReader 返回接口 org.apache.hadoop.mapred.RecordReader 而在上述 SO 答案中扩展为自定义记录读取器的接口是一个抽象类 org.apache.hadoop.mapreduce .RecordReader。
我的自定义输入格式类:
import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.RecordReader;
public class PDFInputFormat extends FileInputFormat<Text, Text> {
@Override
public RecordReader<Text, Text> getRecordReader(InputSplit split, JobConf conf, Reporter reporter) throws IOException {
return new PDFRecordReader();
}
@Override
protected boolean isSplitable(FileSystem fs, Path filename) {
return false;
}
}
感谢任何关于我在这里缺少什么的帮助或指示。
【问题讨论】:
标签: java pdf hadoop mapreduce hadoop-yarn