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

news2024/12/24 9:00:05

一.实验内容

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.coloradmin.cn/o/1571245.html

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

相关文章

使用阿里云试用Elasticsearch学习:1.2 基础入门——数据输入和输出

什么是文档? 在大多数应用中,多数实体或对象可以被序列化为包含键值对的 JSON 对象。 一个 键 可以是一个字段或字段的名称,一个 值 可以是一个字符串,一个数字,一个布尔值, 另一个对象,一些数组值&#…

Linux+HA高可用24X7的安全保证

一. 介绍作为服务器,需要提供一定的24X7的安全保证,这样可以防止关键节点的宕机引起系统的全面崩溃。利用OpenSource开源软件,完成系统的高可靠双机热备方案。基于linux的 HA软件可靠稳定,比使用商业版本的HA软件降低成…

中国智慧城管哪家做的好?

智慧城市管理综合执法系统建立全市统一的法律法规、裁量基准、执法事项、执法文书和基础信息库,实现从获取线索、立案、调查、处理到结案全过程的信息化和文书制作的智能化。全面支持移动执法办案,提高执法效率。 技术架构: 微服务javasprin…

arm开发板移植工具mkfs.ext4

文章目录 一、前言二、手动安装e2fsprogs1、下载源码包2、解压源码3、配置4、编译5、安装 三、移植四、验证五、总结 一、前言 在buildroot菜单中,可以通过勾选e2fsprogs工具来安装mkfs.ext4工具: Target packages -> Filesystem and flash utilit…

【Python】免费的图片/图标网站

专栏文章索引:Python 有问题可私聊:QQ:3375119339 这里是我收集的几个免费的图片/图标网站: iconfont-阿里巴巴矢量图标库icon(.ico)INCONFINDER(.ico)

力扣刷题 二叉树的迭代遍历

题干 给你二叉树的根节点 root ,返回它节点值的 前中后序 遍历。 示例 1: 输入:root [1,null,2,3] 输出:[1,2,3]示例 2: 输入:root [] 输出:[]示例 3: 输入:root […

智慧农业新篇章:数字乡村引领农业现代化

随着信息技术的飞速发展,数字乡村正成为引领农业现代化的重要力量。智慧农业作为数字乡村的核心内容,以其高效、精准、可持续的特点,为农业现代化开辟了新篇章。本文将从智慧农业的内涵与特点、数字乡村在农业现代化中的引领作用、智慧农业发…

机器学习第33周周报Airformer

文章目录 week33 AirFormer摘要Abstract一、论文的前置知识1. 多头注意力机制(MSA)2. 具有潜变量的变分模型 二、文献阅读1. 题目2. abstract3. 问题与模型阐述3.1 问题定义3.2 模型概述3.3 跨空间MSA(DS-MSA)3.4 时间相关MSA&…

小程序如何设置余额充值和消费功能

小程序中设置余额充值和消费功能非常重要的,通过让客户在小程序中进行余额充值,不仅可以提高用户粘性,还可以促进消费,增加用户忠诚度。以下是如何在小程序中设置余额充值和消费功能的步骤: 1. **设计充值入口**&…

Cisco Nexus 9000v Switch, NX-OS Release 10.4(3)F

Cisco Nexus 9000v Switch, NX-OS Release 10.4(3)F 用于网络原型设计和学习研究的虚拟化数据中心交换机 请访问原文链接:https://sysin.org/blog/cisco-nexus-9000v/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.o…

【软件测试】测试常见知识点汇总

测试常见知识点汇总 一、什么是测试1.1 测试和调试的区别1.2 什么是需求1.2.1 用户需求1.2.2 软件需求 1.3 测试用例要素1.4 软件的生命周期及各阶段概述1.5 开发模型和测试模型(记住特点和适用场景)1.5.1 开发模型1.5.1.1 瀑布模型(自上而下…

微信小程序生命周期管理:从数据初始化到事件绑定

作为一个独立的应用开发平台,微信小程序提供了自己的生命周期机制,与我们熟悉的Vue.js框架有一些差异。掌握小程序生命周期的特点和使用技巧,对于开发高质量的小程序应用至关重要。深入理解和掌握小程序生命周期的使用技巧,将有助于我们构建出更加健壮和可维护的小程序应用。 小…

内网穿透的应用-如何在Android Termux上部署MySQL数据库并实现无公网IP远程访问

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身…

tesseract-ocr一站式安装与使用

目录 前言 安装tesseract-ocr 添加环境变量 1、在path中添加 2、在系統變量中添加 3、验证是否添加成功 添加语言包 更多语言包下载 示例程序 前言 如果你遇到了:make sure the TESSDATA_PREFIX Failed loading language \‘chi_sim 那么就是语言包缺少这个&#xf…

地质地貌卫星影像集锦(三 矿产资源篇)

1. 元古代沉积岩的抬升 这个地区位于Leigh Creek中部,距离澳大利亚南部的阿德莱德约500km,弗林德斯山脉的北面是Gawler克拉通。弗林德斯山脉是由元古代沉积岩抬升后形成的块体,在其之下的是寒武纪的岩石,它座落在距阿德莱德北…

正则表达式浅析

正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很…

内表GROUP BY

内表GROUP BY REPORT z_test_table_lhy. DATA: price TYPE sflight-price. SELECT MIN( price ) AS m,carridINTO DATA(t_temp)FROM sflightGROUP BY carridHAVING MAX( price ) > 10. "Having从句中比较统计结果时,需要将统计函数重写一遍,而不…

python爬虫获取豆瓣前top250的标题(简单)

今天是简略的一篇,简单小实验 import requests from bs4 import BeautifulSoup# 模拟浏览器的构成(请求头) headers {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Ch…

6、【单例模式】确保了一个类在程序运行期间只有一个实例

你好,我是程序员雪球 在软件设计中,单例模式是一种常见的设计模式。它确保了一个类在程序运行期间只有一个实例,并提供了全局访问该实例的方式。单例模式在许多场景中都有广泛的应用,例如共享资源管理、数据库连接、日志记录器等…

面试题:MySQL 高可用

💖 主从同步 原理 核心:二进制日志 binlog 是 MySQL 的日志,redolog 和 undolog 是 innodo 引擎的日志。 💖 分库分表 分类 问题和技术 数据一致性问题 使用分布式事务管理组件,如ShardingSphere的分布式事务功能&…