-1
Treiberklasse Geting:Reducer funktioniert nicht oder nie Anruf
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
public class DRIVER {
public static void main(String arg[])
{
try{
Path in = new Path("aamazon.txt");
Path out = new Path("/output");
Configuration conf = new Configuration();
Job job = Job.getInstance(conf);
job.setJarByClass(DRIVER.class);
job.setMapperClass(MAPPER.class);
job.setReducerClass(REDUCER.class);
job.setNumReduceTasks(0);
FileInputFormat.addInputPath(job, in);
FileOutputFormat.setOutputPath(job, out);
job.waitForCompletion(true);
System.out.println("Successful");}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
Mapper Klasse:
import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
public class MAPPER extends Mapper<LongWritable,Text,LongWritable,Text>{
@Override
public void map(LongWritable key,Text value,Context con)
{
try
{
System.out.println(key +"\n"+ value);
con.write(key, value);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
}
Reducer Klasse:
import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
public class REDUCER extends Reducer<LongWritable,Text,LongWritable,Text>{
@Override
public void reduce(LongWritable key,Iterable<Text> value , Context con)
{
System.out.println("reducer");
try{
for(Text t:value)
{
con.write(key, t);
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
Probleme:
- Ausführung bis Mapper Aufarbeiten
- Reducer nie
- aufgerufen wird, wenn ich gesetzt
setNumReduceTasks(0)
dann Mapper nicht
Irgendwelche Ideen, was falsch ist genannt zu werden?
auch wenn i 0 entfernen oder nicht, dass Code setzen, noch Minderer nicht Arbeiten – Ash
Ich überprüfte es, indem ich das Programm laufen ließ. Es funktioniert gut. Wenn ich eine Anzahl von reduzierenden Aufgaben als Null gebe, überspringt es einfach die Reduzierung und wird erfolgreich ohne Fehler beendet. Wenn Sie immer noch Fehler nach dem Stack-Trace oder den protokollierten Informationen erhalten (was Sie beim Posten dieser Frage hätten tun sollen). – ViKiG
Sie sind Lebensretter ... Danke Kumpel. "./output" arbeitete für mich ... zu schätzen – Ash