2011-08-01 2 views
1

Hadoop의 MapReduce 작업 디렉토리에서 디렉토리를 만들고 싶습니다.Hadoop에서 디렉토리를 만들고 읽는 방법 - Mapreduce 작업 작업 디렉토리

예를 들면 다음과 같습니다. File setupFolder = new File (setupFolderName); setupFolder.mkdirs();

내 매퍼 (mapper) 클래스에 중간 파일을 작성하고 있습니다. 그것을하는 것이 올바른 방법일까요?

또한 작업 완료 후 원하는대로이 디렉토리에 다시 액세스 할 수 있습니까?

상담하십시오.

답변

3

java를 사용하는 경우 setup 메서드를 무시하고 파일 핸들러를 열고 (cleanup에 닫음). 이 핸들은 모든 맵퍼에서 사용할 수 있습니다.

여기에 모든지도 출력을 쓰지 않고 일부 디버그/통계를 작성하고 있다고 가정합니다. 이 핸들러를 사용하면 읽고는 공연이 예에서와 같이 쓸 수 있습니다 (http://wiki.apache.org/hadoop/HadoopDfsReadWriteExample)

당신이 https://sites.google.com/site/hadoopandhive/home/how-to-read-all-files-in-a-directory-in-hdfs-using-hadoop-filesystem-api

당신이 의존 할 수 없습니다 기억, 전체 디렉토리를 읽을이 예제를 확인하려면 파일에 기입 해지는 데이터의 순서.

+0

감사합니다. :) –

+0

당신을 환영합니다. D –

2

감속기 클래스의 setupReduce()를 재정의하고 mkdirs()를 사용하여 폴더를 만들고 create()를 사용하여 outputstream 파일을 만들 수 있습니다.

@Override 
    protected void setupReduce(Context context) throws IOException { 
     Configuration conf = context.getConfiguration(); 
     FileSystem fs = FileSystem.get(conf); 
     fs.mkdirs(new Path("your_path_here")); 
    } 
관련 문제