• 每日学习


    今天学习MapReduce

    WritableComparable 排序案例实操(区内排序)
    1)需求
    要求每个省份手机号输出的文件中按照总流量内部排序。
    2)需求分析
    基于前一个需求,增加自定义分区类,分区按照省份手机号设置
    (1)增加自定义分区类
    package com.atguigu.mapreduce.partitionercompable;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Partitioner;
    public class ProvincePartitioner2 extends Partitioner<FlowBean, Text> {
    @Override
    public int getPartition(FlowBean flowBean, Text text, int numPartitions)
    {
    //获取手机号前三位
    String phone = text.toString();
    String prePhone = phone.substring(0, 3);
    //定义一个分区号变量 partition,根据 prePhone 设置分区号
    int partition;
    if("136".equals(prePhone)){
    partition = 0;
    }else if("137".equals(prePhone)){
    partition = 1;
    }else if("138".equals(prePhone)){
    partition = 2;
    }else if("139".equals(prePhone)){
    partition = 3;
    }else {
    partition = 4;
    }
    //最后返回分区号 partition
    return partition;
    }
    }
    (2)在驱动类中添加分区类
    // 设置自定义分区器
    job.setPartitionerClass(ProvincePartitioner2.class);
    // 设置对应的 ReduceTask 的个数
    job.setNumReduceTasks(5);
  • 相关阅读:
    项目部署
    nginx
    IDEA中Lombok插件的安装与使用
    Git常用命令总结
    CentOS 7 NAT模式上网配置
    一名3年工作经验的java程序员应该具备的技能
    maven 项目加载本地JAR
    linux压缩(解压缩)命令详解
    jdk7与jdk8环境共存与切换
    linux服务器卸载本机默认安装的jdk
  • 原文地址:https://www.cnblogs.com/haobox/p/15630816.html
Copyright © 2020-2023  润新知