[HADOOP] 여러 감속기가 Hadoop에서 하나의 부품 파일 만 출력하는 방법은 무엇입니까?
HADOOP여러 감속기가 Hadoop에서 하나의 부품 파일 만 출력하는 방법은 무엇입니까?
제 맵 축소 작업에서는 감속기 작업을 구현하는 데 4 개의 감속기를 사용합니다. 이렇게하면 최종 출력물이 4 개의 부품 파일을 생성합니다. : part-0000 part-0001 part-0002 part-0003
내 질문은 어떻게 hadoop 작동하도록 4 reducers 사용 있지만 하나의 부분 파일을 출력하도록 hadoop 구성을 설정할 수 있습니다?
해결법
-
==============================
1.이것은 hadoop에서 예상되는 동작이 아닙니다. 그러나 여기서 Multiple Output을 사용할 수 있습니다. 하나의 이름이 지정된 출력을 만들어 모든 출력기에서 사용하여 하나의 파일 자체에서 최종 출력을 얻습니다. javadoc 자체가 다음을 제안합니다.
이것은 hadoop에서 예상되는 동작이 아닙니다. 그러나 여기서 Multiple Output을 사용할 수 있습니다. 하나의 이름이 지정된 출력을 만들어 모든 출력기에서 사용하여 하나의 파일 자체에서 최종 출력을 얻습니다. javadoc 자체가 다음을 제안합니다.
JobConf conf = new JobConf(); conf.setInputPath(inDir); FileOutputFormat.setOutputPath(conf, outDir); conf.setMapperClass(MOMap.class); conf.setReducerClass(MOReduce.class); ... // Defines additional single text based output 'text' for the job MultipleOutputs.addNamedOutput(conf, "text", TextOutputFormat.class, LongWritable.class, Text.class);; ... JobClient jc = new JobClient(); RunningJob job = jc.submitJob(conf); ...
작업 구성 사용 패턴은 다음과 같습니다.
public class MOReduce implements Reducer<WritableComparable, Writable> { private MultipleOutputs mos; public void configure(JobConf conf) { ... mos = new MultipleOutputs(conf); } public void reduce(WritableComparable key, Iterator<Writable> values, OutputCollector output, Reporter reporter) throws IOException { ... mos.getCollector("text", reporter).collect(key, new Text("Hello")); ... } public void close() throws IOException { mos.close(); ... } }
새로운 mapreduce API를 사용하는 경우 여기를 참조하십시오.
-
==============================
2.
MultipleOutputs.addNamedOutput(conf, "text", TextOutputFormat.class, LongWritable.class, Text.class);
여기서 텍스트는 출력 디렉토리 또는 텍스트라는 단일 대형 파일입니까?
from https://stackoverflow.com/questions/15346143/how-do-multiple-reducers-output-only-one-part-file-in-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop MapReduce : 기본 매퍼 수 (0) | 2019.06.24 |
---|---|
[HADOOP] Hadoop : LongWritable을 org.apache.hadoop.io.IntWritable에 캐스트 할 수 없습니다. (0) | 2019.06.24 |
[HADOOP] 페치 실패 횟수가 너무 많음 : 클러스터의 Hadoop (x2) (0) | 2019.06.24 |
[HADOOP] hadoop 매퍼에있는 객체 유형의 키 (0) | 2019.06.24 |
[HADOOP] Hadoop 작업을 원격으로 실행할 수 없음 (0) | 2019.06.24 |