020 shuffle的重要作用,以及分区的实践

时间:2022-07-14 17:04:16

一:学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;
} }