package demo04.flow;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Partitioner;
/**
* 分区继承于这个类,重写getPartition方法返回数字根据数字分到各个reduce,此处传入的是K2,V2
*/
public class FlowPartion extends Partitioner<Text, FlowNum> {
@Override
public int getPartition(Text text, FlowNum flowNum, int i) {
String line = text.toString();
if (line.startsWith("135")) {
return 0;
}else if(line.startsWith("135")){
return 1;
}else if(line.startsWith("135")){
return 2;
}else if(line.startsWith("135")){
return 3;
}else if(line.startsWith("135")){
return 4;
}else{
return 5;
}
}
}
主程序里run方法里加入
//分区,分区个数,分区个数最好与上面方法的分区个数相等,多了冗余,少了一个reduce处理多份工作 job.setPartitionerClass(FlowPartion.class); job.setNumReduceTasks(6);
1万+



被折叠的 条评论
为什么被折叠?



