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