求全年最高气温

该博客介绍了如何使用MapReduce编程实现计算全年最高气温的任务。实验涉及在Oracle Linux 7.4上运行Hadoop 3.1.2,目标是掌握数据集的reduce端汇聚和最大值计算。实验步骤包括编写MapReduce程序,通过HDFS平台准备,IDEA中建立Maven项目,实现Mapper和Reducer类,以及运行验证结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

求全年最高气温

实验描述

编写MapReduce程序,实现数据集的最高气温的计算。数据文件的路径为/root/experiment/datas/mapreduce/top1/file1.txt数据集的格式如下,每行一条记录,记录了年份,气象站编号,温度及数据质量。

(0, 15)气象站编号
(15,19)年份
(45, 50) 检查到的温度,如果为+9999则表示没有检测到温度
(50, 51)温度数据质量,为【01459】表示该温度是合理温度

要求:计算每年的最高气温。结果样例如下

实验环境

1. Oracle Linux 7.4

2. Hadoop3.1.2

实验目的

1. 掌握数据集的reduce端汇聚

2. 掌握mapreduce计算最大值的方法

知识点

1. mapreduce计算最大值

2. 数据的reduce端汇聚

实验分析

map任务中读取hdfs中的数据文件,逐行读取,并对每行数据文件进行切分。取出年份和气温。然后按年份相同的数据汇聚到reduce端。在reduce端计算同一个年份的最大值。

任务实施过程

一.实验前HDFS平台的准备工作

1)启动Hadoop平台

1.启动Hadoop平台。具体的启动方法:鼠标双击桌面上的“Konsole”图标,打开终端,在终端命令窗口中输入Hadoop启动命令。由于配置不同,start-all.sh命令后显示的界面与下面可能有出入,也不要紧,只要保证第2步的jps后,守护进程对就可以。

[Command 001]:

start-all.sh

2.输入jps命令,查看Hadoop启动的守护进程。如果系统有其它程序同时运行,守护进程的界面可能与下面稍有不同。但只要保证“NodeManager、SecondaryNameNode、NameNode、DataNode、ResourceManager”进程在界面上有显示即可,不用关注是否有其它进程,或者进程前的数字。

[Command 002]:

jps

2)实验前数据路径/root/experiment/datas的准备

1.数据路径如果已经存在,删除路径下的所有数据文件。命令格式:hadoop fs -rm -r /root/experiment/datas/要删除的文件名。如果要删除的文件名为file.txt,命令为hadoop fs -rm -r /root/experiment/datas/file.txt。

2.如果一次要删除多个文件,可用多个文件相同部分的内容+“”代替未知内容,例如要删除的文件有二个,名分别为file1.txt、file2.txt,则删除命令可以为hadoop fs -rm -r /root/experiment/datas/file或者为hadoop fs -rm -r /root/experiment/datas/*.txt。

3.如果数据存储路径不存在,在HDFS上建立/root/experiment/datas目录,用于记录程序运行时需要的实验数据。

[Command 003]:

hadoop fs -ls -R  /root 

[Command 004]:

hadoop fs -mkdir -p /root/experiment/datas 

[Command 005]:

hadoop fs -ls -R /root 

image.png

4.至此,用于实验数据的HDFS下文件目录准备完成。

二.IDEA下建立Maven项目project

1)建立新项目

1.打开IDEA工具。鼠标双击桌面“IDEA”图标,如果是第一次使用,会弹出“Welcome IntelliJ IDEA”窗口,选择建立新项目条目“Create New Project”,如图所示。

2.确定要建立的项目类型。弹出新项目“New Project”窗口,选择要建立的项目类型“Maven”,点击下一步“Next”按钮。

3.填入工程信息。在弹出“New Project”窗口中,在GroupId对应文本框中输入“hadoopmr”,在ArtifactId对应文本框中输入“project”,然后按“Next”按钮。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值