1.下载部分数据。由于实验就仅仅下载2003年的部分气象数据

2.通过zcat *gz > sample.txt命令解压重定向

[hadoop@Master test_data]$ zcat *gz > /home/hadoop/input/sample.txt

3.查看数据格式

4.把文件sample.txt放进hdfs文件系统里

[hadoop@Master input]$ hadoop fs -put /home/hadoop/input/sample.txt  /user/hadoop/in/sample.txt

5.Maper : MinTemperatureMapper.java

 import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper; public class MinTemperatureMapper
extends Mapper<LongWritable, Text, Text, IntWritable>
{ private static final int MISSING = -9999; @Override
public void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException{ String line = value.toString();
String year = line.substring(0,4);
int airTemperature;
airTemperature= Integer.parseInt(line.substring(14, 19).trim()); if (airTemperature!= MISSING) {
context.write(new Text(year), new IntWritable(airTemperature));
}
}

6.Reducer :MinTemperatureReducer.java

import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer; public class MinTemperatureReducer
extends Reducer<Text, IntWritable, Text, IntWritable>
{ @Override
public void reduce(Text key, Iterable<IntWritable> values,Context context)
throws IOException, InterruptedException
{ int minValue= Integer.MAX_VALUE;
for (IntWritable value : values)
{
minValue= Math.min(minValue, value.get());
}
context.write(key, new IntWritable(minValue));
}
}

7.M-R Job :MinTemperature.java

import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; public class MinTemperature
{
public static void main(String[] args) throws Exception
{
if (args.length!= 2)
{
System.err.println("Usage: MinTemperature<input path> <output path>");
System.exit(-1);
}
Job job= new Job();
job.setJarByClass(MinTemperature.class);
job.setJobName("Min temperature");
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
job.setMapperClass(MinTemperatureMapper.class);
job.setReducerClass(MinTemperatureReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}

8.编译,压缩成jar 包

[hadoop@Master myclass]$ javac -classpath /usr/hadoop/hadoop-core-1.2.1.jar  MinTemperature*.java

[hadoop@Master myclass]$ jar cvf MinTemperature.jar MinTemperature*.class

added manifest

adding: MinTemperature.class(in = 1417) (out= 799)(deflated 43%)

adding: MinTemperatureMapper.class(in = 1740) (out= 722)(deflated 58%)

adding: MinTemperatureReducer.class(in = 1664) (out= 707)(deflated 57%)

9.运行作业

[hadoop@Master myclass]$ hadoop jar /usr/hadoop/myclass/MinTemperature.jar MinTemperature  /user/hadoop/in/sample.txt  ./out2

运行报错。发现报错,信息例如以下

找了半天原因。发现是没删掉class ,程序找不到类。在myclass 文件下删掉class文件。仅仅保留生成的jar包

[hadoop@Master myclass]$ rm MinTemperature*.class

10.查看结果



最新文章

  1. 柯尔莫可洛夫-斯米洛夫检验(Kolmogorov–Smirnov test,K-S test)
  2. CSS 问题集锦
  3. 一个简单的Object Hook的例子(win7 32bit)
  4. 读取iOS通讯录
  5. Python: 测试函数是否被调用
  6. MVC升级以后出现&quot;当前上下文中不存在ViewBag&quot;的问题解决
  7. Nginx和PHP-FPM的启动、重启、停止脚本分享(转)
  8. WPF 操作键盘
  9. SAP标准价格修改
  10. MVC中,查询以异步呈现,分页不用异步的解决方案
  11. 游览器保存密码和自动填充密码的困惑 (browser save password and auto fill password )
  12. contentType设置类型导致ajax post data 获取不到数据
  13. spring boot项目如何测试,如何部署
  14. memcached性能测试之Twemperf
  15. wingIDE Pro6 破解教程
  16. MySQL备份恢复工具Xtrabackup
  17. antd-design model 数据特点
  18. Mac 无需网线创建ipv6环境
  19. kali 创建用户
  20. Django Aggregation聚合 django orm 求平均、去重、总和等常用方法

热门文章

  1. Sql中把datetime转换成字符串(CONVERT)
  2. m_Orchestrate learning system---二十四、thinkphp里面的ajax如何使用
  3. rest_framework (版本)
  4. POJ 3190 priority_queue 贪心
  5. Hive框架基础(一)
  6. ES6中的let、contst
  7. c# static 常量
  8. settings.xml配置的镜像
  9. bzoj5085: 最大 暴力 二分
  10. js实现观察者模式风格替换