Ich stelle eine sehr initiale Programmieraufgabe mit hadoop zusammen und gehe mit dem klassischen Wordcount-Problem.Reduzierung bei 70% stecken
Legen Sie eine Beispieldatei auf hdfs und versucht, Wordcount darauf auszuführen. Der Mapper geht gut durch, der Reducer bleibt jedoch bei 70% hängen und bewegt sich nie vorwärts.
Ich versuchte dies mit Dateien auf dem lokalen Dateisystem auch und bekam das gleiche Verhalten.
Was könnte ich falsch machen? hier Karte und reduzieren Funktionen -
public void map(LongWritable key, Text value,
OutputCollector<Text, IntWritable> output, Reporter reporter)
throws IOException {
// TODO Auto-generated method stub
String line = value.toString();
String[] lineparts = line.split(",");
for(int i=0; i<lineparts.length; ++i)
{
output.collect(new Text(lineparts[i]), new IntWritable(1));
}
public void reduce(Text key, Iterator<IntWritable> values,
OutputCollector<Text, IntWritable> output, Reporter reporter)
throws IOException {
// TODO Auto-generated method stub
int count = 0;
while(values.hasNext())
{
count=count+1;
}
output.collect(key , new IntWritable(count));
}
Perfekt, danke für den schnellen Fund des Bugs. – Gyan