写入HDFS:文件被覆盖

时间:2011-11-01 05:30:40

标签: hadoop hdfs

我正在写hadoop文件系统。但每次我附加某些内容时,它都会覆盖数据,而不是将其添加到现有数据/文件中。下面提供了执行此操作的代码。对于不同的数据,一次又一次地调用此代码。每次出现问题时都会打开一个新的SequenceFile.Writer吗?

每次我将路径作为新路径(“someDir”);

  public void writeToHDFS(Path path, long uniqueId, String data){
      FileSystem fs = path.getFileSystem(conf);
      SequenceFile.Writer inputWriter = new SequenceFile.Writer(fs, conf,
          path, LongWritable.class, MyWritable.class);
      inputWriter.append(new LongWritable(uniqueId++), new MyWritable(data));
      inputWriter.close();
  }

1 个答案:

答案 0 :(得分:3)

目前无法通过API附加到现有的SequenceFile。当您创建新的SequenceFile.Writer对象时,它不会附加到该Path的现有文件,而是覆盖它。查看我的earlier question

正如Thomas指出的那样,如果您保留相同的SequenceFile.Writer对象,则可以在调用close()之前附加到该文件。