In meinem hadoop Programmierung Minderer Ausgabename in hadoop für Partition ändern Ich möchte Namen benutzerdefinierte Ausgabe liefern für das Reduktions hier sagen lässtWie kann ich
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Partitioner;
public class Partitionclass extends Partitioner<Text, IntWritable>{
@Override
public int getPartition(Text key, IntWritable value, int numreducetasks){
// TODO Auto-generated method stub
Job job=null;
Configuration conf=new Configuration();
try {
job = Job.getInstance(conf, "word count");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(numreducetasks==2)
{
String partkey=key.toString();
int val=Integer.parseInt(partkey);
if(val%2==0)
{
//System.out.println("Even"+val);
job.getConfiguration().set("mapreduce.output.basename", "Even");
return 0;
}
else
{
job.getConfiguration().set("mapreduce.output.basename", "Odd");
return 1;
}
}
else if(numreducetasks==1)
return 0;
else
System.out.println("Please give reduce task at least one");
return -1;
}
}
ich es durch Treiberklasse versucht, den Code-Schnipsel, sondern Es dint Arbeit, also erstelle ich Auftrag für in der Partitionsklasse, aber funktioniert noch nicht. Ich will Ausgabedateiname wie Sagen für ungerades Odd-r-00000 und für Gerade, Even-r-00001. Kann irgendeinen bitte sagen Sie mir genau, wie Darf ich das machen.