大数据实验四-MapReduce编程实践

一.实验内容

MapReduce编程实践:

使用MapReduce实现多个文本文件中WordCount词频统计功能,实验编写Map处理逻辑、编写Reduce处理逻辑、编写main方法。

二.实验目的

1、通过实验掌握基本的MapReduce编程方法。

2、实现统计HDFS系统中多个文本文件中的单词出现频率。

三.实验过程截图及说明

1、在本地创建多个文本文件并上传到Hadoop:

(1)创建本地存放文件的文件夹:

(2)使用vim命令向文件里添加内容:

创建3个文件(words1.txt、words2.txt、words3.txt):

(3)在Hadoop里创建存放文件的目录:

(4)将本地的3个文件上传到Hadoop上【put命令】:

2、编写java代码来操作读取文件并统计:

(1)启动idea【我这里是用命令打开,你也可直接点图标打开】:

命令是:先切换到你安装idea的目录里面的bin目录,然后输入./idea.sh,不知道是输入什么的可以先输入./i,然后按下tab就会有提示,你就可以继续输入了。

(2)目录结构【这里只需要创建MapReduce即可,前面的是上次的两个实验】:

(3)编写log4j.properties文件:

(4)引入需要用到的依赖:

引入后记得点右边浮现出的Maven标志,下载一下依赖,或者右键任意空白处,找到Maven选项,然后reload。

(5)编写Mapper处理逻辑:

(6)编写Reducer处理逻辑:

(7)编写main函数驱动模块:

(8)运行main函数方法:

(9)运行成功后查看输出文件内容:

统计结果无误,试验完成。

四. 实验总结及心得体会

实验总结:

本实验使用了MapReduce框架实现了多个文本文件中的WordCount词频统计功能。通过编写Map处理逻辑,将每个文本文件中的单词进行拆分并统计数量。在Reduce处理逻辑中,对相同的单词进行合并统计,并输出最终结果。在main方法中,设置了作业的配置信息、任务类型、输入输出路径等。实验结果展示了MapReduce在大数据处理领域的高效性和可靠性。在实际应用中,可以根据需求对代码进行优化,提高性能。

心得体会:

1. MapReduce是一种强大的分布式计算模型,可以帮助我们高效地处理大规模数据。通过本次实验,我掌握了MapReduce的基本概念和编程实践,对分布式计算有了更深入的了解。

2. 在实验过程中,我学会了如何编写Map和Reduce逻辑,以及如何配置MapReduce运行环境。这为我今后处理类似问题时提供了实用的技能。

3. 实验让我认识到,分布式计算并非万能。在实际应用中,我们需要根据数据规模和计算需求来选择合适的计算框架。这对于我今后在项目中选择合适的计算技术具有重要意义。

4. 通过本次实验,我对Hadoop框架有了初步了解。在未来的学习中,我会继续探索Hadoop的相关技术,以提高数据处理能力和扩展知识面。

5. 最后,本次实验提高了我的编程能力和动手实践能力。通过不断地编写代码和调试,我掌握了更多实用的编程技巧,为今后的学习和工作打下了坚实的基础。

五、完整报告获取在开头资源挂载里。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/789573.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】数据探索(Data Exploration)---数据质量和数据特征分析

一、引言 在机器学习项目中,数据探索是至关重要的一步。它不仅是模型构建的基础,还是确保模型性能稳定、预测准确的关键。数据探索的过程中,数据质量和数据特征分析占据了核心地位。数据质量直接关系到模型能否从数据中提取有效信息&#xff…

Vue-Electron配置及踩坑

前言 大道至简。太复杂的教程不看。 本篇将记述我创建好Vue3项目之后,用Electron把页面呈现出来的整个过程。会记录一些踩坑。 首先,Electron官网可以参考。但是它只是作出了一个普通的html结构该如何用Electron呈现出来,vue的配置有一些变…

C 函数指针与回调函数

函数指针 函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。 函数指针可以像一般函数一样,用于调用函数、传递参数。 函数指针类型的声明: typedef int (*fun_ptr)(int,i…

OC分层渲染详解,OC分层渲染与云渲染区别

​OC分层渲染通过分层处理场景来提升渲染效率,而云渲染借助云服务器进行远程高性能渲染。主要差异在于OC分层渲染优化了本地渲染过程,云渲染则依靠云计算资源执行。 OC分层渲染是指什么 OC分层渲染,即Object Channel分层渲染,是一…

C语言运算符和表达式——赋值中的自动类型转换(精度损失问题)

目录 自动类型转换 数值精度损失 自动类型转换 在不同类型数据间赋值时,会发生自动类型转换 *取值范围大的类型 → 取值范围小的类型,通常是不安全的 *数值溢出(Overflow) *反之,一定都是安全的吗?…

fastlio2 给 interactive-slam 保存每帧的点云和每帧的里程计为单独的文件做后端回环优化和手动回环优化

为了给 interactive-slam 提供数据做后端回环优化和手动回环优化,需要保存每帧的点云和每帧的里程计为单独的文件,并且需要保存的名字为ros时间戳。 效果很好,比我自己写的手动回环模块好用 // This is an advanced implementation of the algorithm described in the // fo…

Golang和Java对比

其实我是Javaer转的Golang,我谈谈自己对Java和Golang的体会 我先讲讲我认为Golang的优点 1、Golang是一门新语言,相比于Java,他的生态要小很多,优点很明显,自由度高,学习成本低,能快速拉起一个…

linux 克隆更新 UUID方法

# 查看当前machine-id cat /etc/machine-id rm -rf /etc/machine-id cat /dev/null > /etc/machine-id reboot cat /etc/machine-id 更新网卡ID uuidgen 网卡名称 更新mysql uuid 如果是复制系统,需要改变各节点 uuid ln -s /mysql/data/3306/mysql.sock…

数据结构——二叉树链式结构

目录 前言 1. 二叉树的概念及结构 1.1概念 1.2 特殊的二叉树 1.3 二叉树的性质 1.4 二叉树的存储结构 2. 二叉树链式结构实现 2.1 手动创建二叉树 2.2 二叉树的遍历 2.2.1 前序、中序和后序遍历 2.2.2 层序遍历 2.3 节点个数以及高度 2.3.1 节点个数 2.3.2 求二叉…

宁波中墙建材蒸压加气混凝土砌块用半挂车运输,如何卸货,有什么注意点

宁波中墙建材蒸压加气混凝土砌块用半挂车运输,如何卸货,有什么注意点蒸压加气混凝土砌块是一种轻质多孔的建筑材料,由于其体积大且易碎,因此在运输和卸货过程中需要特别注意。以下是使用半挂车运输蒸压加气混凝土砌块时的卸货方法…

【云呐】固定资产清查盘点报告模板

固定资产清查盘点报告的大致框架:一、前言说明本次清查盘点的背景和目的清晰表述清查盘点的责任与相关依据二、清查盘点范围按部门或区域明确清查范围口径明确被清查项目,如所有原值一定数额以上的固定资产三、清查盘点时间确定清查盘点实施的时间节点 四、清查盘点方法描述清查…

Java中使用MQTT客户端库实现TLS/SSL加密通信的示例

以下是一个完整的Java代码示例,展示了如何使用Eclipse Paho MQTT客户端库在Java中实现TLS/SSL加密的MQTT通信。在这个示例中,我们将创建一个简单的MQTT客户端,该客户端连接到支持TLS/SSL的MQTT代理,并发布和订阅消息。 首先&…

【EI检索稳定,往届均已检索】第三届机器学习、云计算与智能挖掘国际会议(MLCCIM 2024)

第三届机器学习、云计算与智能挖掘国际会议(MLCCIM 2024) 2024年5月30日-6月3日 中国湖北|神农架 www.mlccim.org 会议简介 第三届机器学习、云计算与智能挖掘国际会议(MLCCIM 2024)将于2024年5月30日-6月3日在中国湖北省神农…

回文数-第15届蓝桥第5次STEMA测评Scratch真题精选

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第179讲。 如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,…

nginx与tomcat的区别?

关于nginx和tomcat的概念 网上有很多关于nginx和tomcat是什么东西的定义,我总结了一下: tomcat是Web服务器、HTTP服务器、应用服务器、Servlet容器、web容器。 Nginx是Web服务器、HTTP服务器、正向/反向代理服务器,。 这里有两个概念是交叉的&#xff…

【C++STL详解(二)】——string类模拟实现

目录 前言 一、接口总览 二、默认成员函数 1.构造函数 2.拷贝构造 写法一:传统写法 写法二:现代写法(复用构造函数) 3.赋值构造 写法一:传统写法 写法二:现代写法(复用拷贝构造) 4.析构函数 三、…

包含密钥的OMP压缩感知模拟(MATLAB)

压缩感知(Compressed Sensing,CS)是一种新颖的信号采样和重建理论,它通过利用信号的稀疏性或者低维性,从极少量的观测中直接重建出完整的信号。压缩感知的核心思想是,在合适的条件下,信号本身的稀疏性或低维性可以使其信息内容大幅减少,从而可以通过较少的观测数据进行…

OSPF实验1

1,配置IP地址 [R1]dis ip interface brief Interface IP Address/Mask Physical Protocol GigabitEthernet0/0/0 200.1.1.1/24 up up GigabitEthernet0/0/1 10.1.1.1/24 up …

ORA-01779 BYPASS_UJVC 11.2后废弃了

有这么个update语句 update A t set status 1 where exists (select 1 from B B where B.code A.code) 因性能问题需要修改写法。 在oracle10G这么update是没问题的: update( select …

Linux文件处理之ln命令详解

Linux文件处理之ln命令详解 在Linux系统中,ln命令是一个非常重要的工具,用于创建文件或目录的链接。链接在Linux文件系统中是一个核心概念,它允许用户以不同的路径名访问同一个文件或目录。通过ln命令,我们可以创建硬链接和软链接(也称为符号链接)。本文将详细解释ln命令…