欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 自定义分区器

自定义分区器

2025/4/18 7:08:03 来源:https://blog.csdn.net/2401_83378805/article/details/147063771  浏览:    关键词:自定义分区器

1.在WordCountDriver里面将链接集群注释了


2.然后创建CustomPartitioner类

package com.example.mapreduce;
 
//自定义分区器
 
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Partitioner;
//1.继承Partitioner类
//2.重写getPartition方法
public class CustomPartitioner extends Partitioner<Text, LongWritable> {
    @Override
    public int getPartition(Text key, LongWritable value, int numPartitions) {
        //返回值是0,1,2.....
        //如果Key1和Key2的code相同,那么他们会被分配到同一个分区,保存到同一个文件
        //如果单词是以a~m开头,那么会被分配到第一个分区
        //否则,就分配到第二个分区
        //1.获取单词首字符
        char firstChar = key.toString().charAt(0);
        //2.判断首字符
        if (firstChar >= 'a' && firstChar <= 'm') {
            return 0;
        }else {
            return 1;
        }
    }
}

3.然后回到我们 WordCountDriver

在“// 6. 设置输入和输出路径。请确保相关的目录是存在的”后面添加

        //设置reduceTask的数量
        job.setNumReduceTasks(3);//产生结果的时候,会用3个文件来保存
        // 设置自定义分区器
        job.setPartitionerClass(CustomPartitioner.class);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词