new package cn.itcast.demo5
创建类 GroupMain GroupMapper GroupReducer GroupPartitioner GroupComparator OrderBean
在OrderBean类中,首先实现WritableComparable,<>中放OrderBean自身
定义private String orderId和private double price
重写CompareTo方法,int i = this.price.compareTo(o.price); 返回i 代表降序排序
重写write方法,out.writeUTF(orderId);out.writeDouble(price)
重写readFields方法,this.orderId = in.readUTF;this.price = in.readDouble;
生成get(),set()方法和toString()方法
在GroupMapper类中,重写map方法,分割数据(/t),split[0]是orderId,split[2]是price,输出k2,v2
在GroupPartion类中继承Partitioner,重写getPartition,在HashPartition中找到重写的方法,return();
在GroupCompatator类中继承WritableComparator,重写compare方法
通过GroupComparator方法,做一个构造器,super(OrderBean.class,true);//重写默认的无参构造器,然后定义反射出来的对象是OrderBean这个类
在compare方法中把object强转成OrderBean,OrderBean first = (OrderBean) a;OrderBean second = (OrderBean) b;返回first.getOrderId().compareTo(second.getOrderId());以此来比较订单id,如果是相同的id,就认为是同一组数据
GroupReducer类不需要做什么,直接重写reduce方法,接收k2,v2,输出k3,v3即可
GroupMain方法老规矩