0


使用MapReduce求ncdc气象数据中的最低温度

一 实验内容与完成情况:

一、下载、解压、合并与上传数据

首先启动集群,然后在进行数据处理前首先需要获得所需要的数据,并且下载数据。

使用脚本启动hadoop集群,并且启动zookeeper,使用jpsall查看。

然后创建文件夹,使用wget命令下载数据。

cd /opt/modul/hadoop
mkdir temp #创建文件夹用于存放数据
cd temp
sudo wget ftp://ftp.ncdc.noaa.gov/pub/data/gsod/2016/gsod_2016.tar
sudo wget ftp://ftp.ncdc.noaa.gov/pub/data/gsod/2017/gsod_2017.tar![](https://img-blog.csdnimg.cn/49aa3984f2f54a62a9f135562746f511.png)

下载完成之后,通过ll命令查看,然后去解压。

解压2016与2017年的数据包

tar -xvf gsod_2016.tar
tar -xvf gsod_2017.tar

将这些数据文件解压并合并到一个ncdc.txt****文件中

zcat *.gz > ncdc.txt
ll |grep ncdc

查看ncdc.txt****文件

head -12 ncdc.txt

使用sed****命令删除匹配'STN'的行

sed -i '/STN/d' ncdc.txt

将准备好的数据上传至hdfs

Myhadoop.sh start
jpsall
hadoop fs -copyFromLocal /opt/modul/hadoop-3.1.3/temp/ncdc.txt input

二、编写求最低温度的MapReduce代码****

编写MinTemperature.java

编写MinTemperatureMapper.java

编写MinTemperatureReducer.java

  • 编译运行程序

*在这里,我们就可以javac .java打包成.Class文件,然后再将.class文件打包成jar,这样过于麻烦,我们可以使Apache开源所提供的项目管理工具maven*,使用maven可以直接将项目打成jar包。*****

我们可以直接查看到maven打出的jar包,然后通过xftp上传到xshell,最终上传到hadoop集群中

执行程序

hadoop jar /opt/module/hadoop-3.1.3/temp/MinTemperature.jar MinTemperature /input/ncdc.txt ncdc

然后就可以查看了,或者也可以使用java提供的API直接运行。

或者也可以在Hadoop里面查看

最终我们得到两年的最低温度,2016年的最低温度是-112°,2017年的最低温度是-115°。

二:出现的问题:

在hadoop集群里面使用jar包执行程序,但是出现上述错误

三:解决的办法:

使用的命令:

hadoop jar /home/hadoop/temp/code/MinTemperature.jar MinTemperature input/ncdc.txt ncdc

原因是没有以正确的格式输入,所以会出现上述问题。


本文转载自: https://blog.csdn.net/kiritobryant/article/details/127529274
版权归原作者 kiritobryant 所有, 如有侵权,请联系我们删除。

“使用MapReduce求ncdc气象数据中的最低温度”的评论:

还没有评论