1.自定义groupingCompatator实现分组求top1 topN
Order_0000001 Pdt_01 222.8
Order_0000001 Pdt_05 25.8
Order_0000002 Pdt_03 522.8
Order_0000002 Pdt_04 122.4
Order_0000002 Pdt_05 722.4
Order_0000003 Pdt_01 222.8
求取每给订单当中,金额最大的那个商品的价格是多少
求前top2,出来了两条数据,不满足我们每个组当中取前两个最大的值
select max(price)
from order o group by o.orderid order by price desc limit 2
top2表示的是每个订单当中最大的前两个值分组求topN
Order_0000001 Pdt_01 222.8
Order_0000001 Pdt_05 25.8
Order_0000002 Pdt_05 722.4
Order_0000002 Pdt_03 522.8
Order_0000003 Pdt_01 222.8
如何通过mapreduce来实现
如何通过MR实现分组求top1
第一个问题:求金额的最大值,要排序,按照金额来进行排序
第二个问题:如何区分不同的订单,,通过订单id来区分我们不同的订单,相同的订单,发送到同一个reduce里面去,形成一个集合
分区与分组的关系:
分区:主要是决定了我们的数据去往哪一个reduce
分组:决定了哪些数据分到一个组里面去,形成一个集合,一起调用一次reduce逻辑
2.Mapreduce的其他补充
2.1多job串联
2.2Mapreduce的参数优化
Mapreduce提交任务过程
虚拟内核:根据我们CPU的型号,CPU的类型,虚拟出来的一些核数
以下调整参数都在mapred-site.xml这个配置文件当中有
//以下参数是在用户自己的mr应用程序中配置就可以生效