Java 在处理自定义文件格式时,应如何对InputFormat进行编码?

Java 在处理自定义文件格式时,应如何对InputFormat进行编码?,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,虽然这是一个更一般的问题,但我在这里找不到关于特定情况的详细帮助。我有大量的大文件(每个平均2GB)。这些文件包含以自定义格式编码的条目,必须由另一个库读取才能解析为单个条目。现在我希望使用MapReduce解析这些文件,但是默认的InputFormat和InputSplit逐行处理文件,这不是我想要的。似乎我必须指定如何分割文件(每个分割应该包含一些条目)以及如何生成记录(每个条目应该映射到一个键/值>对) 为了实现这一点,我应该覆盖哪些方法 这可以通过为此输入文件编写自定义InputForm

虽然这是一个更一般的问题,但我在这里找不到关于特定情况的详细帮助。我有大量的大文件(每个平均2GB)。这些文件包含以自定义格式编码的条目,必须由另一个库读取才能解析为单个条目。现在我希望使用MapReduce解析这些文件,但是默认的InputFormat和InputSplit逐行处理文件,这不是我想要的。似乎我必须指定如何分割文件(每个分割应该包含一些条目)以及如何生成记录(每个条目应该映射到一个键/值>对)


为了实现这一点,我应该覆盖哪些方法

这可以通过为此输入文件编写自定义InputFormat来完成 1.您应该设置分割的开始和结束 1.1您可以设置行首和行尾 2.此拆分的记录读取器用于读取拆分内的记录

下面是一个读取XML的示例。这应该让你开始。

你能举一个自定义格式的例子吗?问题在于我不知道文件的格式是怎样的;我只能依靠一个外部库来解析它们。你需要整个2GB文件由一个映射器处理吗?你能发布一个输入文件格式的示例吗(你给@rath的回复是关于序列文件的hadoop文档的链接)