MapReduce 的天气统计案例,是那种上手挺快但能学到不少东西的项目。专注在用MapReduce框架天气数据,不需要你有多深的分布式背景,照着例子走一遍,流程和原理都能搞明白。
Map 阶段主要做预,比如把每天的天气记录拆成键值对,键是日期,值是温度和湿度。代码不复杂,重点在于你怎么提取这些字段。Mapper
类里边写写逻辑,读数据、拆字段、丢出去。响应也快,调试也方便。
到了Shuffle 和 Sort阶段,系统自动把相同日期的记录聚一起,给到Reducer
。这里可以做平均、最大值、最小值统计,用IntWritable
这类 Hadoop 封装好的数据类型就行。文件名一般像WeatherMapper.java
、WeatherReducer.java
、WeatherDriver.java
,也就 7 个核心类,蛮精炼的。
嗯,配置作业的时候,Driver
类就关键,设路径、指定 Mapper 和 Reducer 类,还有输入输出格式。常用的包像org.apache.hadoop.io
、org.apache.hadoop.mapreduce
基本都得引入。没接触过 Hadoop 的,跟着走一遍也能熟练点。
如果你想找个轻量点的入门项目,还能真刀真枪写写代码,这个案例还挺合适的。要是你对分布式感兴趣,可以顺便看看Hadoop 分布式计算平台概述,算是补充阅读材料。