2012-02-19 1 views
1

나는 단순지도 축소 프로그램에서 일하고 있습니다. 키의 각기 다른 단어에 대해 감속기 다음에 다른 파일을 만들고 싶습니다. 예를 들어, MapReduce의 실행 후 I 지금감속기에서 다중 출력

Priority1 × 2

Priority1 Y 2

Priority1 z의 2

priority2 × 2

priority2 y를 2

같은 것을 가지고 나는 우선 순위에 따라 이러한 모든 값을 가진 우선 순위 1과 우선 순위 2라고 말하면서 단계적으로 축소 된 후에 다른 파일을 원합니다. 나는 자바를 사용하고 있으며 이런 종류의 출력을 가지고 있다면 감속기에 무엇을 써야하는지 알고 싶습니까?

나는 이것이 가능한지 또는 이것이 어떻게 접근하거나 해결할 수 있는지 알고 싶습니다. Hadoop 0.20.203을 사용 중이므로 multipleoutputs가 작동하지 않습니다.

모든 포인터가 도움이 될 것입니다. 도움에 감사드립니다! Atul

답변

0

먼저 기준에 따라 partioner 클래스를 만들어야합니다.

그런 다음 자신의 outputformat 클래스와 recordwriter 클래스를 만들어야합니다.

클래스 recordwriter 클래스는 필요에 따라 다른 파일에 쓸 필요가 있습니다. 또한 값을 정렬해야 할 경우 키 필드에 대해 comparator 클래스를 만듭니다.

+0

특히 출력 형식을 만들 때 각 단어에 대해 새 파일을 만드는 방법을 정확히 알고 있습니까? 일반적으로 출력 파일은 OutputFormat.getRecordWriter (context)를 호출 할 때 만들어 지므로 파일의 이름을 어떻게 알 수 있습니까? – Huckle

0

MultipleOutputs을 살펴보십시오.

+0

MultipleOutputs를 보았지만 hadoop 0.20.203에서는 사용할 수 없습니다. 나는 나의 질문에 hadoop의 버전을 언급하는 것을 잊었다. 감사!! Atul – user722856

+0

아, 알겠습니다. 음, 나도 물을 수 있었다. :) 당신은 http://stackoverflow.com/questions/2180101/generating-multiple-output-files-with-hadoop-0-20을 보았습니까? –