现在的位置: 首页 > 综合 > 正文

hadoop权威指南阅读(一)

2014年02月12日 ⁄ 综合 ⁄ 共 703字 ⁄ 字号 评论关闭

 1.任务:查找所有年份最高气温
 1)MaxTemperatureMapper.class
 map的目的是吐出点对,年份=>气温
 output.collect(new Text(year),new IntWritable(airTemperature));
 key可以重复,例如可以是
 1950 23
 1950 22
 1950 28
 2)MaxTemperatureReducer.class
 reducer的目的,是针对输入的所有key values;计算最终值,这里的输入就相当于 1950 => array(23,22,28)了
   int maxValue = 0;
   while(values.hasNext())
   {
if(values.next().get()> maxValue)
{
maxValue = values.next().get();
}
output.collect(key,new IntWritable(maxValue)); //这里如果输入是上面说的1950的数据,输出就是 1950 28
   }

3)进行实际操作 
...
conf.setMapperClass(MaxTemperatureMapper.class);
conf.setReducerClass(MaxTemperatureReducer.class);
...
JobClient.runJob(conf);

4)合并结果集的操作类
在这里复用MaxTemperatureReducer.class
conf.setCombinerClass(MaxTemperatureReducer.class);
因为结果集合会是
1950 28
1951 22
1952 23
的样式

抱歉!评论已关闭.