Hadoop MapReduce编程

简介: 该教程指导编写Hadoop MapReduce程序处理天气数据。任务包括计算每个城市ID的最高、最低气温、气温出现次数和平均气温。在读取数据时需忽略表头,且数据应为整数。教程中提供了环境变量设置、Java编译、jar包创建及MapReduce执行的步骤说明,但假设读者已具备基础操作技能。此外,还提到一个扩展练习,通过分区功能将具有相同尾数的数字分组到不同文件。

使用课堂讲解的Hadoop mapreduce,编写map类和reduce类。(至少完成2项)

(1)对天气数据,计算每个城市id的最高气温(最大值)

(2)对天气数据,计算每个城市id的最低气温(最小值)

(3)对天气数据,计算每个城市id的气温次数(计数)

(4)对天气数据,计算每个城市id的平均气温(平均值)

读取表格数据的时候把表头删掉,因为表头是字符串,数据是整数

教程开始

[评论可见]隐藏内容 - 管理员可见

export HADOOP_CLASSPATH=/root/Desktop/hadoop/hadoop-3.3.1/share/hadoop/common/hadoop-common-3.3.1.jar:/root/Desktop/hadoop/hadoop-3.3.1/share/hadoop/mapreduce/hadoop-mapreduce-client-common-3.3.1.jar:/root/Desktop/hadoop/hadoop-3.3.1/share/hadoop/common/lib/commons-cli-1.2.jar:/root/Desktop/hadoop/hadoop-3.3.1/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.3.1.jar:/root/Desktop/hadoop/hadoop-3.3.1/share/hadoop/mapreduce/hadoop-mapreduce-client-core-3.3.1.jar

以上命令注意事项:

  • jar包的路径根据自己实际情况修改,不要无脑复制粘贴
  • 该命令是暂时性的,只在一次控制台窗口生效,关闭控制台窗口再重新打开需重新运行此命令,也可永久指定,在该文件内指定即可/etc/profile(不建议永久指定)

javac -classpath $HADOOP_CLASSPATH -d container WordCount.java

对以上命令的说明:

  • $HADOOP_CLASSPATH:这个是第一步指定的环境变量,里面有编译该程序的jar包,不需更改
  • container:存放编译Java程序后的字节码文件(.class结尾),可根据实际情况任意指定
  • WordCount.java:要编译的JAVA文件,文章最后会给出,根据实际情况更改,根据不同的题目指定不同的Java程序

jar -cvf norths.jar -C container/ .

对以上命令的说明:

  • norths.jar:打包成jar包后的名字,可根据实际情况任意指定
  • container/ .:把对应文件夹下的字节码文件打包成jar包,因为上一步我们把字节码存放到了container文件夹中,所以在这一步我们把该文件夹中的字节码文件打包成jar包

hadoop jar /root/Desktop/mapreduce/norths.jar WordCount  /wordcount/input/temperatures.csv /wordcount/output-1

对以上命令的说明:

  • /root/Desktop/mapreduce/norths.jar:上一步打包的jar包的存放路径,对应的是linux本地的路径
  • WordCount:java程序的类名
  • /wordcount/input/temperatures.csv:要处理的文件的路径,对应的是hadoop上的路径
  • /wordcount/output-1:处理完文件后结果的存放路径,对应的是hadoop上的路径(此路径不能是已经存在的路径)

本教程省略了在本地新建文件,并把文件上传到hadoop文件系统的步骤,因为能看这个教程的默认已经掌握这些基本操作

对一个包含大量整数的文件进行统计分析,将尾数相同的数字放在同一个文件中(用分区实现)。

[评论可见]隐藏内容 - 管理员可见

参考第一题运行过程:

注意事项:

读取的文件变了,不再是表格了,是自己随便指定的

Java程序的类名变了,注意更改

目录
相关文章
|
6天前
|
分布式计算 Hadoop Java
MapReduce编程模型——在idea里面邂逅CDH MapReduce
MapReduce编程模型——在idea里面邂逅CDH MapReduce
29 15
|
5天前
|
存储 分布式计算 Hadoop
MapReduce编程模型——自定义序列化类实现多指标统计
MapReduce编程模型——自定义序列化类实现多指标统计
7 0
|
8天前
|
机器学习/深度学习 分布式计算 并行计算
MapReduce是一种用于并行计算的编程模型和处理大规模数据集的实现
MapReduce是一种用于并行计算的编程模型和处理大规模数据集的实现
18 0
|
12天前
|
存储 分布式计算 Hadoop
Hadoop生态系统详解:HDFS与MapReduce编程
Apache Hadoop是大数据处理的关键,其核心包括HDFS(分布式文件系统)和MapReduce(并行计算框架)。HDFS为大数据存储提供高容错性和高吞吐量,采用主从结构,通过数据复制保证可靠性。MapReduce将任务分解为Map和Reduce阶段,适合大规模数据集的处理。通过代码示例展示了如何使用MapReduce实现Word Count功能。HDFS和MapReduce的结合,加上YARN的资源管理,构成处理和分析大数据的强大力量。了解和掌握这些基础对于有效管理大数据至关重要。【6月更文挑战第12天】
31 0
|
13天前
|
分布式计算 Java Hadoop
简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行
简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行
13 0
|
13天前
|
分布式计算 自然语言处理 大数据
【大数据】MapReduce JAVA API编程实践及适用场景介绍
【大数据】MapReduce JAVA API编程实践及适用场景介绍
31 0
|
14天前
|
分布式计算 Hadoop Java
使用Hadoop MapReduce分析邮件日志提取 id、状态 和 目标邮箱
使用Hadoop MapReduce分析邮件日志提取 id、状态 和 目标邮箱
|
1月前
|
分布式计算 Hadoop
Hadoop系列 mapreduce 原理分析
Hadoop系列 mapreduce 原理分析
46 1
|
1月前
|
存储 分布式计算 负载均衡
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
115 0
|
20天前
|
数据采集 SQL 分布式计算

相关实验场景

更多