Vi一个tianqi.txt,把最后一的空格删掉。
温度
天气案例:细粒度介绍计算框架
需求:
找出每个月气温最高的2天
1949-10-01 14:21:02 34c
1949-10-01 19:21:02 38c
1949-10-02 14:01:02 36c
1950-01-01 11:21:02 32c
1950-10-01 12:21:02 37c
1951-12-01 12:21:02 23c
1950-10-02 12:21:02 41c
1950-10-03 12:21:02 27c
1951-07-01 12:21:02 45c
1951-07-02 12:21:02 46c
1951-07-03 12:21:03 47c

思路分析:
1,MR
*保证原语
怎样划分数据,怎样定义一组
2,k:v映射的设计
考虑reduce的计算复杂度
3,能不能多个reduce
倾斜:抽样
集群资源情况
4,自定义数据类型
思路:
每年
每个月
最高
2天
1天多条记录?
进一部思考
年月分组
温度升序
key中要包含时间和温度呀!
MR原语:相同的key分到一组
通过GroupCompartor设置分组规则
自定义数据类型Weather
包含时间
包含温度
自定义排序比较规则
自定义分组比较
年月相同被视为相同的key
那么reduce迭代时,相同年月的记录有可能是同一天的
reduce中需要判断是否同一天
注意OOM
数据量很大
全量数据可以切分成最少按一个月份的数据量进行判断
这种业务场景可以设置多个reduce
通过实现partition
代码实现:
客户端部分:

该博客详细介绍了如何使用MapReduce处理天气数据,以找到每个月气温最高的2天。通过自定义数据类型、分区、排序和分组规则,实现了对温度记录的细粒度处理。博客涵盖了Map、Reduce过程,以及如何处理倾斜和内存管理问题。

1825

被折叠的 条评论
为什么被折叠?



