[HADOOP] 제어 하둡의 감속기하지 않을
HADOOP제어 하둡의 감속기하지 않을
I는 화상 판독 RGB 배열에 저장할 수 하둡 맞춤 inputformat 및 데이터 유형을 기록했다. 내지도에 구현하고 기능을 감소시킬 때, 제어는 감속기 기능으로 이동하지 않습니다.
import java.io.IOException;
import java.util.*;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
public class Image {
public static class Map extends Mapper<Text, ImageM, Text, ImageM> {
public void map(Text key, ImageM value, Context context) throws IOException,
InterruptedException {
/*
for(int i=0;i<value.Height;i++)
{
System.out.println();
for(int j=0;j<value.Width;j++)
{
System.out.print(" "+value.Blue[i][j]);
}
}
*/
context.write(key, value);
}
}
public static class Reduce extends Reducer<Text, ImageM, Text, IntWritable> {
public void reduce(Text key, ImageM value, Context context)
throws IOException, InterruptedException {
for(int i=0;i<value.Height;i++)
{
System.out.println();
for(int j=0;j<value.Width;j++)
{
System.out.print(value.Blue[i][j]+" ");
}
}
IntWritable m = new IntWritable(10);
context.write(key, m);
}
}
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
Job job = new Job(conf, "wordcount");
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(ImageM.class);
job.setMapperClass(Map.class);
job.setReducerClass(Reduce.class);
job.setInputFormatClass(ImageFileInputFormat.class);
job.setOutputFormatClass(TextOutputFormat.class);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
long start = new Date().getTime();
job.waitForCompletion(true);
long end = new Date().getTime();
System.out.println("Job took "+(end-start) + " milliseconds");
}
}
여기서,지도의 기능 키를 입력 포맷에 따라 파일 이름을 제공한다.
나는 "icon2.gif Imagem의의 @의 31093d14"로 출력을 얻을
내 데이터 형식 만 매퍼에서 사용하는 경우 모든 것은 괜찮습니다. 어디에 문제가 u는 추측 할 수 있나요?
해결법
-
==============================
1.귀하의 감소 함수 서명이 잘못되었습니다. 그것은해야한다:
귀하의 감소 함수 서명이 잘못되었습니다. 그것은해야한다:
@Override public void reduce(Text key, Iterable<ImageM> values, Context context) throws IOException, InterruptedException
당신을 위해 컴파일러 지점이 오류를 수 있도록하기 위해 @Override 주석을 사용하십시오.
from https://stackoverflow.com/questions/24583029/control-is-not-going-to-the-reducer-in-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 명령 줄에서 자바를 컴파일 오류 (0) | 2019.09.20 |
---|---|
[HADOOP] 하둡 - 입력 / 출력 파일은 하둡에 저장하는 방법과 하둡에서 자바 파일을 실행? (0) | 2019.09.20 |
[HADOOP] (YARN)에 스파크가 작업자 노드에 설치되어 있지 않은 경우 어떻게 스파크 집행 인은 시작된다? (0) | 2019.09.20 |
[HADOOP] 어떻게 외부 항아리 클라우 데라의 하둡을 사용 하는가? (0) | 2019.09.20 |
[HADOOP] 자바 HDFS에서 파일을 읽기 (0) | 2019.09.20 |