求全年最高气温
实验描述
编写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
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”按钮。