3

我想在 Hadoop 中处理很多文件——每个文件都有一些头信息,然后是很多记录,每个记录都存储在固定数量的字节中。对此有何建议?

4

3 回答 3

4

我认为最好的解决方案是编写一个自定义InputFormat.

于 2009-07-09T15:04:10.990 回答
1

有一种解决方案,您可以检查映射器读取的文件行的偏移量。文件中的第一行为零。因此您可以在 Map 中添加如下行:

public void map(LongWritable key,Text value,Context context) throws IOException, InterruptedException {

        if(key.get() > 0)
                       {
                         your mapper code
                       }
              }

因此,它将跳过文件的第一行。

但是,这不是一个好方法,因为通过这种方式,将为文件中的每一行检查此条件。

最好的方法是使用您的自定义输入格式

于 2013-03-21T12:11:14.343 回答
0

除了编写自定义 FileInputFormat 之外,您还需要确保文件不可拆分,以便读者知道如何处理文件中的记录。

于 2009-09-20T17:04:42.163 回答