Hadoop FileSystem API

 private void deleteDirectory(Job job, String path) throws IOException
 {
 FileSystem fs = FileSystem.get(job.getConfiguration());
 Path filePath = new Path(path);
 if( fs.exists(filePath) )
 fs.delete(filePath, true);
 }
 

org.apache.hadoop.mapred.FileAlreadyExistsException: XXXXXXXX directory output already exists

Hadoop MapReduce를 Local에서 테스트를하거나, 클러스트에 배포하여 테스트를 할경우 기존에 있는 파일디렉토리때문에 Exception이 발생하게 된다.

Hadoop FileSystem API를 사용하여 파일을 직접 핸들링하여 삭제하거나 생성할 수 있다. LocalFileSystem, DistributedFileSystem 인지에 따라서 잘 동작되어야 하기때문에  org.apache.hadoop.fs.* 패키지로 접근을 한다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중