MapReduce 的天气统计案例,是那种上手挺快但能学到不少东西的项目。专注在用MapReduce框架天气数据,不需要你有多深的分布式背景,照着例子走一遍,流程和原理都能搞明白。

Map 阶段主要做预,比如把每天的天气记录拆成键值对,键是日期,值是温度和湿度。代码不复杂,重点在于你怎么提取这些字段。Mapper类里边写写逻辑,读数据、拆字段、丢出去。响应也快,调试也方便。

到了Shuffle 和 Sort阶段,系统自动把相同日期的记录聚一起,给到Reducer。这里可以做平均、最大值、最小值统计,用IntWritable这类 Hadoop 封装好的数据类型就行。文件名一般像WeatherMapper.javaWeatherReducer.javaWeatherDriver.java,也就 7 个核心类,蛮精炼的。

嗯,配置作业的时候,Driver类就关键,设路径、指定 Mapper 和 Reducer 类,还有输入输出格式。常用的包像org.apache.hadoop.ioorg.apache.hadoop.mapreduce基本都得引入。没接触过 Hadoop 的,跟着走一遍也能熟练点。

如果你想找个轻量点的入门项目,还能真刀真枪写写代码,这个案例还挺合适的。要是你对分布式感兴趣,可以顺便看看Hadoop 分布式计算平台概述,算是补充阅读材料。