一:学shuffle原理的必要性
1.说明
学习shuffle的作用是可以对程序进行优化。
在shuffle这个部分有三个部分需要注意:
分区
排序
分组
这个可以进行优化。
二:分区的实践
1.说明
在shuffle中有一行程序job.setPartitionerClass(partition.class);
所以,可以书写一个分区规则。
2.程序
package com.senior.bigdata; import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Partitioner; public class PartitionerRule extends Partitioner<Text,IntWritable>{ @Override
public int getPartition(Text key, IntWritable value, int numPartitions) {
String str=key.toString();
if(str.substring(0,1).matches("A-Z")){
return 0;
}
return 1;
} }