hadoop二次排序,自定义计数器

本文详细探讨了Hadoop MapReduce中如何实现二次排序,以及如何自定义计数器进行任务监控。通过实例讲解,读者将理解如何处理复杂的排序需求,并掌握计数器在MapReduce作业中的使用技巧。
import org.apache.hadoop.io.WritableComparable;

import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;

/**
 * 序列化和比较:
 * 序列化实现:Writable
 * 比较实现:Comparable
 * 既序列化又比较实现:WritableComparable   后面要加泛型
 */
public class SortWritable implements WritableComparable<SortWritable> {

    private String first;
    private int second;


    /**
     * 比较:先比较第一个如果第一个相同再比较第二个,第一个不相等直接返回结果
     * @param o
     * @return
     */
    @Override
    public int compareTo(SortWritable o) {
       int i = this.first.compareTo(o.first);
       if(i==0){
           int i1 = Integer.valueOf(this.second+"").compareTo(Integer.valueOf(o.second));
           return i1;
       }else{
           return i;
       }
    }

    /**
     * 序列化,把字符串转换成字节流,保存下来,在JVM生命周期结束也可以被传输
     * @param out
     * @throws IOException
     */
    @Override
    public void write(DataOutput out) throws IOException {
        out.writeUTF(this.first);
        out.writeInt(second);
    }

    /**
     *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值