Hadoop学习之第四章节:最高温度统计测试程序

1.测试温度数据下载:


(稍后补充下载地址)

2.将数据上传到hdfs中

3.测试代码为:


MinTemperature


import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 
publicclass MinTemperature {
   
    publicstaticvoid 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);
    }
}

MinTemperatureMapper

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;
 
publicclass MinTemperatureMapper extends Mapper<LongWritable, Text, Text, IntWritable>{
 
    privatestatic final intMISSING = 9999;
   
    @Override
    publicvoid map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
       
        String line = value.toString();
        String year = line.substring(15, 19);
       
        int airTemperature;
        if(line.charAt(87) == ‘+‘) {
            airTemperature = Integer.parseInt(line.substring(88, 92));
        } else {
            airTemperature = Integer.parseInt(line.substring(87, 92));
        }
       
        String quality = line.substring(92, 93);
        if(airTemperature != MISSING && quality.matches("[01459]")) {
            context.write(new Text(year), new IntWritable(airTemperature));
        }
    }
}

MinTemperatureReducer

import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
 
publicclass MinTemperatureReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
 
    @Override
    publicvoid 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));
    }
}
时间: 2024-10-22 07:39:05

Hadoop学习之第四章节:最高温度统计测试程序的相关文章

hadoop学习记录(四)hadoop2.6 hive配置

一.安装mysql 1安装服务器 sudo apt-get install mysql-server 2安装mysql客户端 sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev 3检查是否有mysql服务开启如果出现第二行则成功开启 netstat -tap|grep mysql tcp 0 0 *:mysql *:* LISTEN 6153/mysqld 4开启mysql服务命令 service m

Hadoop学习之第七章节:Hive安装配置

环境要求: mysql hadoop hive版本为:apache-hive-1.2.1-bin.tar 1.设置hive用户 进入mysql命令行,创建hive用户并赋予所有权限: mysql -uroot -proot mysql>create user 'hive' identified by 'hive'; mysql>grant all on *.* TO 'hive'@'%' with grant option; mysql>flush privileges; 2.创建hiv

Hadoop学习之第六章节:Hbase配置安装

1.安装Hbase 1)下载,注意要与hadoop版本兼容,且选择稳定版较好 wget http://mirrors.hust.edu.cn/apache/hbase/hbase-0.98.5/hbase-0.98.5-hadoop2-bin.tar.gz 2)解压  tar -zxvf hbase-0.98.5-hadoop2-bin.tar.gz 3)修改conf/hbase-site.xml文件  <property>   <name>hbase.rootdir</na

Hadoop学习之第五章节:Mysql的安装配置,命令学习

一.关于MySQL MySQL是最流行的开源SQL数据库管理系统,它由MySQL AB开发.发布和支持.MySQL AB是一家由MySQL开发人员创建的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司.MySQL是MySQL AB的注册商标. MySQL是一个快速的.多线程.多用户和健壮的SQL数据库服务器.MySQL服务器支持关键任务.重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去. MySQL的官方发音是"My Ess

Hadoop学习之第八章节:Sqoop安装配置

一.Sqoop介绍 Sqoop是一个用来将Hadoop(Hive.HBase)和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:MySQL ,Oracle ,Postgres等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导入到关系型数据库中. Sqoop目前已经是Apache的顶级项目了,目前版本是1.4.4 和 Sqoop2 1.99.3,本文以1.4.4的版本为例讲解基本的安装配置和简单应用的演示. 版本为: sqoop-1.4.6.bin__hadoo

hadoop学习:《Hadoop权威指南第四版》中文PDF+英文PDF+代码

结合理论和实践,<Hadoop权威指南第四版>由浅入深,全方位介绍了Hadoop 这一高性能的海量数据处理和分析平台.5部分24 章,第Ⅰ部分介绍Hadoop 基础知识,第Ⅱ部分介绍MapReduce,第Ⅲ部分介绍Hadoop 的运维,第Ⅳ部分介绍Hadoop 相关开源项目,第Ⅴ部分提供了三个案例. Hadoop生态都有涉及,很厚很全:HDFS, MapReduce1&2(YARN), Hive, HBase, Pig, ZooKeeper, Sqoop等. 多数章节对自己的要求都是了

Hadoop学习常用的Linux命令

我们以RHEL6.3为例说明. Linux的命令后面会有命令选项,有的选项还有选项值.选项的前面有短横线“-”,命令.选项.选项值之间使用空格隔开.有的命令没有选项,会有参数.选项是命令内置的功能,参数是用户提供的符合命令格式的内容. 1.1.1. 命令提示符 在桌面上点击鼠标右键,在弹出菜单中选择“Open in Terminal”, 系统会打开终端,类似于Windows下的命令行.Windows的命令行是dos环境,Linux下的命令行是shell环境.我们的所有命令都是在shell下运行的

Hadoop读书笔记(五)MapReduce统计单词demo

Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629 Hadoop读书笔记(二)HDFS的shell操作:http://blog.csdn.net/caicongyang/article/details/41253927 Hadoop读书笔记(三)Java API操作HDFS:http://blog.csdn.net/caicongyang/article/details/41290955

Hadoop学习总结之五:Hadoop的运行痕迹

Hadoop学习总结之五:Hadoop的运行痕迹 Hadoop 学习总结之一:HDFS简介 Hadoop学习总结之二:HDFS读写过程解析 Hadoop学习总结之三:Map-Reduce入门 Hadoop学习总结之四:Map-Reduce的过程解析 在使用hadoop的时候,可能遇到各种各样的问题,然而由于hadoop的运行机制比较复杂,因而出现了问题的时候比较难于发现问题. 本文欲通过某种方式跟踪Hadoop的运行痕迹,方便出现问题的时候可以通过这些痕迹来解决问题. 一.环境的搭建 为了能够跟