복붙노트

[HADOOP] HDFS에 쓰기 : 파일을 덮어 씁니다.

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. ==============================

    1.현재 API를 통해 기존 SequenceFile에 추가 할 수있는 방법이 없습니다. 새 SequenceFile.Writer 객체를 만들면 해당 Path의 기존 파일에 추가되지 않고 대신 덮어 씁니다. 내 이전 질문을 참조하십시오.

    현재 API를 통해 기존 SequenceFile에 추가 할 수있는 방법이 없습니다. 새 SequenceFile.Writer 객체를 만들면 해당 Path의 기존 파일에 추가되지 않고 대신 덮어 씁니다. 내 이전 질문을 참조하십시오.

    Thomas가 지적한 것처럼 동일한 SequenceFile.Writer 객체를 유지하면 close ()를 호출 할 때까지 파일에 추가 할 수 있습니다.

  2. from https://stackoverflow.com/questions/7962802/writing-to-hdfs-file-is-overwritten by cc-by-sa and MIT license